Ограничение выравнивания по iOS в зависимости от высоты экрана (суперпредставления) - PullRequest
0 голосов
/ 02 июля 2018

Скажем, например, я хочу, чтобы верхнее поле моего вида было

30 px для iPhone 6s

и для другого экрана я хочу изменить эту константу с 30 на X, где X пропорционально общей высоте экрана

т.е.

36,5 для iPhone X, 33 для iPhone 6s плюс, 25 для iPhone SE

И так далее ... Я знаю, что могу взять @IBOutlet из NSLayoutConstraint и изменить его программно, но я хочу установить его как соотношение сторон, которое у нас есть для ширины высоты, как высота высоты подвида: пропорционально, это суперпредставление меняется с высотой и шириной суперпредставления

enter image description here

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Ограничение, которое вам здесь нужно, - это установить множитель centerY superView на 0,5, если вы хотите, чтобы константа верхнего якоря была равна 0,25 высоты экрана сверху, поэтому настройте множитель в соответствии с этой логикой, равной

height_of_screen = 2 * centerY

enter image description here

0 голосов
/ 02 июля 2018

Это невозможно только при верхнем ограничении, как у вас. Невозможно связать верхнее расстояние с высотой от создателя интерфейса.

Вы можете добавить вид над изображением, который существует только для обеспечения этого отступа. Ваша иерархия будет выглядеть так в VFL:

"V:|[paddingView][imageView]"

Вот изображение вида на месте над изображением:

view above image view

Затем вы можете установить ограничение высоты в этом дополнительном виде, чтобы оно было равно содержащему виду.

make heights equal

Добавьте к этому ограничению множитель, который даст вам ожидаемую высоту. Если вы хотите, чтобы оно было 30 на экране высотой 667 баллов, то множитель будет примерно равен 0,044978 (30/667 = ~ 0,044978). Это ограничение высоты будет обновляться в зависимости от высоты основного вида, что обеспечит желаемое визуальное заполнение.

add multiplier to the constraint

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...