Как вы скрываете строку состояния в ios 9?
Теперь это устарело:
[UIApplication sharedApplication] setStatusBarHidden:YES];
Как вы скрываете строку состояния в ios 9?
Теперь это устарело:
[UIApplication sharedApplication] setStatusBarHidden:YES];
Свифта-3
override var prefersStatusBarHidden: Bool {
return true
}
Я получил информацию из здесь
Измените func на var
Удалить ()
Измените -> на :
Это работает, потому что вычисленная переменная имеет функцию getter, поэтому функция, которую вы реализовали, просто превращается в функцию getter
2016 и далее: простые вещи, такие как
На вашем info.plist добавьте следующие два свойства для statusBar Hidden
Просмотр состояния строки состояния на основе контроллера (Boolean: NO)
Строка состояния изначально скрыта (Boolean: YES)
По источнику
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
или
Старые ответы!...
добавить application.statusBarHidden в didFinishLaunchingWithOptions
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
application.statusBarHidden = YES;
return YES;
}
и добавьте
in info.plist добавьте этот View controller-based status bar appearance набор NO
View controller-based status bar appearance = NO
скрытый набор на основе viewcontroller
Добавьте метод в свой контроллер.
Цель -C
- (BOOL)prefersStatusBarHidden {
return YES;
}
Swift до 2
override func prefersStatusBarHidden() -> Bool {
return true
}
(GOOD) 2016.5.17 в iOS 9.0 работал хорошо.
Обновленный ответ
Для Objective-C:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[application setStatusBarHidden:YES];
return YES;
}
Для Swift:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
application.statusBarHidden = true
return true
}
в info.plist добавьте следующие два свойства.
View controller-based status bar appearance (NO)
Status bar is initially hidden (YES)
Я знаю, что в документации setStatusBarHidden: нет упоминания о том, что использовать вместо этого. Но заголовок UIApplication делает.
// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system.
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController prefersStatusBarHidden]");
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_DEPRECATED_IOS(3_2, 9_0, "Use -[UIViewController prefersStatusBarHidden]");
Здесь указано, что вы должны использовать prefersStatusBarHidden на UIViewController и использовать стили статусной панели на основе контроллера.
Теперь вам нужно настроить, должен ли диспетчер представлений показывать скрытие строки состояния. Например:
- (BOOL)prefersStatusBarHidden {
return YES;
}
Здесь вы можете легко получить контроль над видимостью строки состояния для iOS 9 + и Swift 3 +:
View controller-based status bar appearance с YES значением Info.plist.Добавьте эту переменную в контроллер вида:
private var isStatusBarHidden = false {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
Заменить свойство prefersStatusBarHidden:
override var prefersStatusBarHidden: Bool {
return isStatusBarHidden
}
Что это. Теперь вы можете звонить isStatusBarHidden = true и isStatusBarHidden = false, когда захотите.
Если по какой-то причине вам понадобится View controller-based status bar appearance, равный YES (например, чтобы сохранить строку состояния белой)
в приложении AppDelegate didFinishLaunchingWithOptions или везде, где вы настраиваете свой навигационный контроллер:
yourNavigationController.navigationBar.barStyle = .black
затем используйте alex-staravoitau удивительный ответ и добавьте этот код, где бы вы ни скрывали строку состояния:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Я не уверен, что это правильный способ достичь этого результата, но это сработало для меня, и я надеюсь, что это тоже поможет кому-то еще:)
В большинстве iOS он будет работать. Я тестировал с iOS 10.
windowLevel подходом было бы установить, что windowLevel приложения является либо нормальным, либо statusBar на основе ваших потребностей, поэтому для начала
Objective-C
Скрыть строку состояния
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelStatusBar;
Показать строку состояния
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelNormal;
Также добавьте Key (вид на панели управления на основе контроллера) с логическим значением NO.