Начните с добавления нового контроллера вида - используйте макет iPhone 8 в книжной ориентации (ш C ч R ):
Добавьте новый UIImageView
и поместите его на вершину примерно на 1/4 высоты (не важно, насколько близко):
Добавить верхние / ведущие / конечные ограничения:
Добавить пропорциональное ограничение высоты при 0,25:
Теперь измените вид относительно альбомной ориентации (ш C ч C):
Это будет выглядеть так (как и ожидалось):
Нажмите Vary for Traits
и выберите Height
, потому что мы изменили с (ш C ч R ) на (ш C ч C):
Посмотрите на ограничения в Инспекторе размеров и выберите This Size Class
:
Удалить Ограничения ведущей и пропорциональной высоты:
и добавьте ограничение Bottom и ограничение пропорциональной ширины (0,5):
И нажмите Done Varying
. Теперь это выглядит так:
Обратите внимание, что у нас есть 2 "неактивных" (неактивных) ограничения ... Если вы переключитесь обратно на View как книжная ориентация, эти два ограничения станут «активными», а два (w C h C) будут показаны как «неактивные».
Поскольку приложения могут работать на неполных экранах (многозадачность iPad), рекомендуется больше не думать о портрете и пейзаже. Скорее, подумайте с точки зрения классов / черт размера.
Если ваш дизайн требует, вы также можете добавить (w R h R ) вариации черты.
Теперь, если вы действительно хотите Портрет против Пейзажа, вам нужно будет использовать некоторый код. Определите набор ограничений для макета Высокий / Узкий и еще один набор ограничений для макета Широкий / Короткий. Затем внедрите viewWillTransition(to size: ...
и активируйте / деактивируйте соответствующие ограничения, основанные на "to size" width > height
или height > width
.