Фокус UITabBar и движущаяся компоновка представления на tvOS

Одним из распространенных поведений приложений AppleTV AppleTV (таких как фильмы и телешоу) является то, что они начинаются с видимой панели UITabBar, и все содержимое представления отображается в пространстве под панелью вкладок. Как только фокус перемещается с панели вкладок на какой-либо контент на экране, панель вкладок соскальзывает с верхней части экрана, а содержимое перемещается/прокручивается вверх, чтобы заполнить доступное пространство. Этот процесс меняется на противоположный, если панель вкладок снова появляется.

Есть ли простой способ добиться этого поведения (например, флажок или что-то в этом роде?), или я должен реализовать метод didUpdateFocusInContext:withAnimationCoordinator: в разных местах и ​​вручную настроить кадры или прокрутить содержимое или что-то в этом роде?


person bcholmes    schedule 11.11.2015    source источник


Ответы (1)


Выберите объект панели вкладок в сцене контроллера панели вкладок в режиме раскадровки и снимите флажок «Прозрачный». Элементы в представлениях теперь должны перемещаться вверх, когда панель вкладок перемещается вверх.

Класс UITabBar также имеет свойство translucent.

person Citron    schedule 12.11.2015
comment
Ага! Идеальный. Спасибо! - person bcholmes; 12.11.2015
comment
Хм. Кажется, он работает нормально, если мой контроллер панели вкладок непосредственно содержит контроллер представления, но если между ними есть контроллер навигации, он не работает. Печальный. - person bcholmes; 13.11.2015
comment
@bcholmes Я понимаю, что это происходит немного поздно, но вы можете поместить свой навигационный контроллер в UIViewController и добавить этот UIViewController в качестве одного из контроллеров представления панелей вкладок. - person maxpower; 02.06.2017