Полноэкранный интерфейс UIView с панелью статуса и панелью навигации сверху - PullRequest
51 голосов
/ 17 декабря 2008

Как правильно реализовать строку состояния и панель навигации, расположенную поверх UIView?

альтернативный текст http://img.skitch.com/20081217-t78sdixk37hqgdh1ia2fgec4st.png

Ответы [ 6 ]

45 голосов
/ 19 июня 2009

Просто установите «хочет полноэкранный макет» в вашем контроллере представления. Это решает проблему для меня.

self.wantsFullScreenLayout = YES;
23 голосов
/ 17 декабря 2008

На скриншоте выше есть полупрозрачная строка состояния и полупрозрачная панель навигации.

Строка состояния устанавливается с помощью

[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackTranslucent];

Панель навигации устанавливается с помощью

theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
14 голосов
/ 04 ноября 2009

Если у вас есть контроллер представления внутри контроллера навигации, и вы хотите скрыть строку состояния, чтобы иметь представление viewController в полноэкранном режиме, вы всегда можете позвонить:

[self.navigationController.view setNeedsLayout];

после скрытия строки состояния. Но лично я думаю

[self setWantsFullScreenLayout:YES];

лучший способ.

4 голосов
/ 01 января 2009

Лучший способ, с помощью которого я придумал, заключался в следующем: при использовании «сложной» иерархии панели вкладок, содержащей контроллеры навигации, с одним «подробным» представлением в полноэкранном режиме.

В приложении-делегат незадолго до добавления в окно представления контроллера панели вкладок я добавил следующее:

tabBarController.view.frame = [[UIScreen mainScreen] bounds];

Это заставит контроллер панели вкладок покрывать весь экран, даже ниже области строки состояния. Мне пришлось сместить высоту нескольких видов до + 20px, в частности, панели навигации.

0 голосов
/ 24 сентября 2013

шаг 1 Установите UIViewControllerBasedStatusBarAppearance значение Нет в списке

Затем добавьте следующий код в опцию «Закончить запуск»

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {

   [application setStatusBarStyle:UIStatusBarStyleLightContent];

    self.window.clipsToBounds =YES;

    self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}

Пожалуйста, следуйте этому коду, он работал для меня

0 голосов
/ 19 декабря 2008

Установите стиль строки состояния как черный полупрозрачный и стиль панели навигации как черный полупрозрачный. Если вы используете приложение на основе навигации, в MainWindow.xib проверьте, что строка состояния скрыта, а панель навигации скрыта.

Когда пользователь касается экрана, запустите таймер, чтобы увидеть, было ли это одним касанием или двойным касанием. Если одно касание, сделать статусбар и навигационную панель скрытыми = НЕТ. и как только активность пользователя прекратится, запустите таймер снова. после некоторого времени бездействия снова сделайте их скрытыми.

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