Как я могу растянуть и закрепить центральный вид между верхним и нижним колонтитулами фиксированной высоты, используя Interface Builder? - PullRequest
2 голосов
/ 19 февраля 2012

У меня есть UIView, у которого есть 3 подэкрана: заголовок, центральная панель и нижний колонтитул. Верхний и нижний колонтитулы имеют фиксированную высоту, и я могу настроить их свойства автоматического изменения размера так, чтобы они вели себя так, как я хочу: верхний колонтитул остается привязанным к верху и растягивается по размеру экрана (книжный или альбомный), а нижний колонтитул остается закреплена на дне, а также растягивается вместе с экраном.

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

Я не могу сделать это в коде (я думаю, если нет способа), переопределяя layoutSubviews, потому что я анимирую это внешнее представление, и мне нужны подпредставления для изменения размера с анимацией. Есть ли способ сделать это в IB?

1 Ответ

5 голосов
/ 20 февраля 2012

В коде:

header.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
content.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
footer.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;

В Интерфейсном Разработчике:

Заголовок:

enter image description here

Содержание:

enter image description here

Footer:

enter image description here

Пояснение:

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

Этот материал абсолютно выполним в коде. В Интерфейсном Разработчике вы ничего не можете сделать, чего не можете сделать и в коде.

enter image description here

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