Автозапуск iOS, чтобы центрировать мой взгляд между двумя видами
Как настроить автозапуск в Interface Builder для упорядочивания представлений по вертикали, как показано на изображении:
![scheme]()
Top view
прикреплен к краю верхнего края, Bottom view
прикреплен к краю нижнего экрана. My view
должен быть центрирован между верхним и нижним (так что расстояние до Top view
равно расстоянию до Bottom view
)
Ответы
Ответ 1
Способ сделать это состоит в том, чтобы иметь 2 невидимых "проставки" между видимыми видами.
Вы не можете сделать пространства равными по высоте. Но вы используете "spacer" виды и размещаете их между своими представлениями (с 0 пробелами к окружающим представлениям).
Затем вы даете этим представлениям равные высоты, и они будут приближать ваши взгляды, чтобы центрировать My View
с равным разрывом на Bottom View
и Top View
.
то есть. как это...
V:|[Top View][spacer1][My View][spacer2(==spacer1)][Bottom View]|
EDIT - Другой способ
Я просто подумал о другом способе этого. У вас может быть невидимый контейнер UIView
, который находится между Top View
и Bottom View
без пробелов.
Затем вы помещаете My View
внутри этого невидимого вида и центрируете его по вертикали.
Ответ 2
Еще одно решение - добавить невидимое представление между видом сверху и ботом и поместить мой взгляд в центр этого представления:
![Центрированный UIView]()
Ответ 3
(5 лет спустя) Я нашел самое каноническое решение:
UILayoutGuide
специально введен для решения таких задач (начиная с iOS 9).
Используйте руководства по компоновке для замены представлений фиктивных представлений, которые вы, возможно, создали для представления пространств между просмотрами или инкапсуляции в вашем пользовательском интерфейсе - Ref docs
Он работает очень хорошо в коде, но, к сожалению, интерфейс Builder не поддерживает собственные руководства по компоновке.
Ответ 4
Это видео дает удивительный обзор автоматического макета и ограничений в построителе интерфейса: https://www.youtube.com/watch?v=1j-Frd5snYc
Ответ 5
Являются ли эти серьезные ответы? Я не могу сказать. Мне не нравится AutoLayout по многим другим причинам, но эти ответы, если они действительно являются "способом использования AutoLayout", означают, что AutoLayout STILL не готов к прайм-тайм.