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

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

alt text http://sofru.miximages.com/objective-c/skitch

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

self.wantsFullScreenLayout = YES; 

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

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

 [[UIApplication sharedApplication] setStatusBarStyle: UIStatusBarStyleBlackTranslucent]; 

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

 theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; 

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

 [self.navigationController.view setNeedsLayout]; 

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

 [self setWantsFullScreenLayout:YES]; 

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

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

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

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

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

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

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

Шаг 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); } 

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

  • iTunes Connect API
  • Сколько стоит разработка приложения для iPhone?
  • Как преобразовать NSTimeInterval (секунды) в минуты
  • Как вы можете читать файлы MIME-типа в объективе-c
  • Перетаскивание UIView внутри UIScrollView
  • Преимущества, проблемы, примеры добавления другого UIWindow в приложение iOS?
  • Использование Objective C / Cocoa для unescape символов Unicode, то есть \ u1234
  • NSMutableArray - заставить массив удерживать только определенный тип объекта
  • NSArray слабых ссылок (__unsafe_unretained) для объектов под ARC
  • NSOperation на iPhone
  • Данные перезагрузки UITableView
  • Давайте будем гением компьютера.