Как изменить положение изображения для портретного или горизонтального выравнивания в XCode 11 - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь получить изображение от заполнения правой части экрана при горизонтальной ориентации до верхней четверти при портретной ориентации.

Я следовал большому количеству руководств и баллов здесь , но все они связаны со старой версией XCode, в которой, по-видимому, есть то, чего нет в XCode 11 - , например, выбор постоянной - или просто не работает.

Я полностью озадачен тем, как это должно работать, так как, когда я добавляю «Vary for traits», он применяет движение ко всем устройствам. Я уверен, что должен думать об этом, должно быть, проще, нет?

Я использую XCode 11.4 с поддержкой iOS 13.x> выше.

enter image description here

1 Ответ

1 голос
/ 17 апреля 2020

Начните с добавления нового контроллера вида - используйте макет iPhone 8 в книжной ориентации (ш C ч R ):

enter image description here

Добавьте новый UIImageView и поместите его на вершину примерно на 1/4 высоты (не важно, насколько близко):

enter image description here

Добавить верхние / ведущие / конечные ограничения:

enter image description here

Добавить пропорциональное ограничение высоты при 0,25:

enter image description here

Теперь измените вид относительно альбомной ориентации (ш C ч C):

enter image description here

Это будет выглядеть так (как и ожидалось):

enter image description here

Нажмите Vary for Traits и выберите Height, потому что мы изменили с (ш C ч R ) на (ш C ч C):

enter image description here

Посмотрите на ограничения в Инспекторе размеров и выберите This Size Class:

enter image description here

Удалить Ограничения ведущей и пропорциональной высоты:

enter image description here

и добавьте ограничение Bottom и ограничение пропорциональной ширины (0,5):

enter image description here

И нажмите Done Varying. Теперь это выглядит так:

enter image description here

Обратите внимание, что у нас есть 2 "неактивных" (неактивных) ограничения ... Если вы переключитесь обратно на View как книжная ориентация, эти два ограничения станут «активными», а два (w C h C) будут показаны как «неактивные».

Поскольку приложения могут работать на неполных экранах (многозадачность iPad), рекомендуется больше не думать о портрете и пейзаже. Скорее, подумайте с точки зрения классов / черт размера.

Если ваш дизайн требует, вы также можете добавить (w R h R ) вариации черты.

Теперь, если вы действительно хотите Портрет против Пейзажа, вам нужно будет использовать некоторый код. Определите набор ограничений для макета Высокий / Узкий и еще один набор ограничений для макета Широкий / Короткий. Затем внедрите viewWillTransition(to size: ... и активируйте / деактивируйте соответствующие ограничения, основанные на "to size" width > height или height > width.

...