Подтвердить что ты не робот

Полноэкранный UIView со строкой состояния и наложением панели навигации наверху

Каков правильный способ реализации строки состояния и навигационной панели, которая находится поверх UIView?

alt text http://img.skitch.com/20081217-t78sdixk37hqgdh1ia2fgec4st.png

4b9b3361

Ответ 1

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

self.wantsFullScreenLayout = YES;

Ответ 2

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

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

[[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackTranslucent];

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

theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

Ответ 3

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

[self.navigationController.view setNeedsLayout];

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

[self setWantsFullScreenLayout:YES];

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

Ответ 4

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

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

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

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

Ответ 5

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

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

Ответ 6

Шаг 1 Установите для UIViewControllerBasedStatusBarAppearance значение No в plist

Затем добавьте следующий код в опции завершения финализации

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);
}

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