Я начал проект в классе размеров Any Width, Any Height, и для одной из сцен было несколько элементов пользовательского интерфейса (более 10). Недавно я хотел изменить макет этой сцены для класса размера Any With, Compact Height (для iPhone в альбомной ориентации). И я не мог найти правильный способ справиться с этим.
В конце мне пришлось удалить все элементы пользовательского интерфейса с любой шириной и любой высотой, а затем создать две копии всех элементов этой сцены: одну для любой ширины, компактной высоты и другую для любой ширины, Обычная высота. Таким образом, сцена в Any, Any фактически стала пустой. Но я чувствую, что это не должно быть правильным способом.
Вот пример:
Я начал с любой ширины, любой высоты и поместил две метки (одну поверх другой), чтобы заполнить экран.
Любая ширина, любая высота. Установлены ограничения.
Любая ширина, компактная высота с ограничениями от любой ширины, любой высоты
Теперь для iPhone в альбомной ориентации я хотел переместить метки так, чтобы они были рядом, поэтому сначала в нижней части XCode я изменил на wAny hCompact, а затем перетащил и изменил размер меток, чтобы они были рядом. Перед добавлением дополнительных ограничений это выглядит так, как показано ниже.
Обратите внимание, что выделенные ограничения в структуре документа относятся к любой ширине, любой высоте, и все они применяются к любой ширине и компактной высоте.
Любая ширина, компактная высота. Неустановленные ограничения любой ширины, любой высоты
Поэтому я удалил эти ограничения
Любая ширина, компактная высота. Добавлены собственные ограничения
А затем я добавил ограничения для текущего класса размера, Любая ширина, Компактная высота
Любая ширина, любая высота. Теперь нет ограничений, Xcode выдает ошибки и предупреждения
Вернемся к классу размера Any Width, Any Height, ограничения не применяются, так как я их удалил. Но если я снова добавлю ограничения, это повлияет на любую ширину и компактную высоту.
Поэтому я изначально установил все ограничения: Любая ширина, Любая высота, Любая ширина, Обычная высота. Это запустит проект, и экран будет правильно отображаться как в портретной, так и в альбомной ориентации.
Однако для любой ширины и любой высоты по-прежнему нет ограничений, и XCode выдает предупреждения.
Как я уже сказал, я закончил тем, что удалил все элементы пользовательского интерфейса для этой сцены с любой шириной и любой высотой, а затем создал по одной версии для каждой с любой шириной, компактной высотой и любой шириной, обычной высотой. Также нужно было создать выходы и действия для каждого.
Как мне сделать это, не создавая отдельный набор элементов пользовательского интерфейса (и без перетаскивания элементов управления для создания выходов и действий) каждый раз, когда я хочу использовать другой класс размера?