Динамический размер с Autolayout в iOS 6

Я хотел бы иметь представление, имеющее размер (в данном случае его высоту) в зависимости от размера экрана, чтобы покрыть экран iPhone4 / iPhone6 ​​одним xib. Так что скажем, я беру ListView, и я не хочу иметь его на весь экран, но у меня есть фиксированные пробелы выше и ниже. Его высота должна быть:

screen_height - (space_above + space_below) 

В Interface Builder я могу установить два ограничения по вертикальному пространству, а затем удалить исключение высоты ListView, чтобы его высота определялась родительским представлением и этими двумя ограничениями пространства.

Имея Freeform в симулированных показателях, я могу перетащить, чтобы изменить размер моего корневого представления и увидеть связанные с ним ограничения (размер ListView изменяется правильно).

Проблема:

Однако, если я запустил приложение в симуляторе, все будет исправлено, как в последней позиции в Interface Builder. Что я пропустил, что мешает макету работать в соответствии с его ограничениями?

Если я изменю моделированные показатели на Retina 3.5 или 4, Xcode удалит мои ограничения и вернется к ограничениям фиксированного размера.

2 Solutions collect form web for “Динамический размер с Autolayout в iOS 6”

Проблема заключается в корневом представлении, которое не принимает (другое, как предполагалось) значение размера экрана.

Возможно, это не лучшее решение:

[self.view setFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];

Но он обеспечивает представление в правильном размере и позволяет ограничениям работать.

Вы хотите это?

автозапуск

autoLayout LandScape

Если да, то увеличьте изображения и следуйте указаниям оттуда. Это слишком интересно, когда вы работаете с autoLayout, не так ли?

  • Динамическое изменение ширины UILabel не работает с автозапуском
  • Как добавить ограничение на пользовательский файл xib-файла в виде таблицы?
  • Ограничения на автоопределение iOS 8 / XCode 6, применяемые после просмотра
  • Автозапуск не переходит в подслой
  • XCode 7 Как подключить для просмотра, а не для руководства по воспроизведению
  • Как настроить меток labelMaxLayoutWidth для автоматического программирования?
  • Как я могу получить текущую ширину и высоту представления при использовании ограничений автоопределения?
  • Проблема с автозагрузкой iOS с помощью ScrollView
  • Анимация высоты UILabel с автозапуском
  • UIScrollView в раскадровке не работает с классами класса IOS 8 и автозапуском
  • Размер UILabel неправильно вычисляется при изменении шрифта в UILabel
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.