Подтвердить что ты не робот

Автозапуск iOS, чтобы центрировать мой взгляд между двумя видами

Как настроить автозапуск в Interface Builder для упорядочивания представлений по вертикали, как показано на изображении:

scheme

Top view прикреплен к краю верхнего края, Bottom view прикреплен к краю нижнего экрана. My view должен быть центрирован между верхним и нижним (так что расстояние до Top view равно расстоянию до Bottom view)

4b9b3361

Ответ 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 не готов к прайм-тайм.