Представление iOS7 с автомакетом для выравнивания над TabBar

Я знаю, я знаю... Еще один вопрос по iOS7.
У меня есть представление в UINavigationController, которое добавляется в TabBarController. В iOS6 я использовал ограничение по вертикали «нижнее пространство для суперпросмотра, по умолчанию», что дало бы мне 10 пикселей относительно TabBar.
Похоже, это же ограничение не работает в iOS 7. TabBar больше не считается суперпросмотром? ? Есть ли другое ограничение, которое я должен использовать?


person estobbart    schedule 20.09.2013    source источник


Ответы (3)


Каждый контроллер представления теперь является полноэкранным, поэтому ваше представление начинается с 0,0 (под строкой состояния) и заканчивается под панелью вкладок.

С автоматической компоновкой вы можете использовать новое свойство в UIViewController, называемое bottomLayoutGuide. Как Руководство по переходу на новый интерфейс iOS 7 гласит:

Свойства topLayoutGuide и bottomLayoutGuide указывают расположение верхних или нижних краев панели в представлении контроллера представления. Если полосы должны перекрывать верх или низ представления, вы можете использовать Interface Builder, чтобы расположить представление относительно полосы, создав ограничения в нижней части topLayoutGuide или в верхней части bottomLayoutGuide. (Если никакие полосы не должны перекрывать представление, нижняя часть topLayoutGuide совпадает с верхней частью представления, а верхняя часть bottomLayoutGuide совпадает с нижней частью представления.) Оба свойства лениво создаются по запросу.

person Marco Pompei    schedule 20.09.2013
comment
В настоящее время в iOS7 существует ошибка, из-за которой высота нижней направляющей макета устанавливается неправильно при переключении вкладок на панели вкладок. - person Leo Natan; 18.10.2013
comment
Свойства topLayoutGuide и bottomLayoutGuide доступны только из Interface Builder при использовании раскадровок, а не со стандартными NIB, как может показаться... - person Jonathan Ellis; 16.01.2014

Если вы используете Auto Layout. Снимите флажок «Расширить края> Под нижними полосами», установленный для вашего контроллера панели вкладок в Interface Builder.

person Kane Zeng    schedule 12.11.2013

В iOS 7:

В иерархии представлений панели вкладок topView->parentView-> .... ->rootView

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

person ArunDhwaj IIITH    schedule 14.04.2014