У меня есть макет автоматической разметки, который был создан для iPhone в портретном режиме.
Когда я поворачиваю устройство из портретной в альбомную ориентацию, я получаю предупреждение о том, что система не может удовлетворить два ограничения одновременно.Это происходит при повороте в обе ориентации.
Я считаю, что обнаружил нарушающее ограничение (выделено ниже), и оно созданоiOS, перемещение моего ограничения, которое находится в конфликте, нарушает мой макет и вызывает больше ошибок нарушения ограничений.
Макет работает визуально;до тех пор, пока я игнорирую предупреждение.
Компоновка состоит из двух основных частей: элементов управления (с использованием UIStackView
, что составляет 30% от высоты устройства) и UITableView
, который заполняетоставшаяся площадь.Они встроены в UIStackView
, который настроен на покрытие по умолчанию UIView
с полями в безопасной зоне.
Для наилучшего использованиядоступного пространства экрана, когда устройство поворачивается в горизонтальное положение, часть управления должна располагаться над UITableView
рядом с ним и занимать 45% ширины экрана.
Конфликтующее ограничениена части «контроллер» вида, устанавливающей его передний край равным 16 точкам от переднего края суперпредставлений.
Можно ли обойти это?Мне тоже не нравится, но можно ли проигнорировать предупреждение?
Я попытался встроить основной UIStackView
в UIView
и удалить ограничение, которое находится в конфликте;но он вызывает другие проблемы, если я не добавлю ограничения между UIView
и UIStackView
, которые затем имеют ту же проблему конфликтующих ограничений.
Можно найти репозиторий для примера проекта с той же проблемой в .
При упрощении макета кажется, что я не могу иметь UIStackView
с Alignment = Fill
, Distribution = Fill Equally
и Spacing = 5
(или стандартным интервалом) в качестве интервала на UIStackView
по-видимому.в конфликте.