Скрыть строку состояния в ios 9
Как вы скрываете строку состояния в ios 9?
Теперь это устарело:
[UIApplication sharedApplication] setStatusBarHidden:YES];
Ответы
Ответ 1
Свифта-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 работал хорошо.
Обновленный ответ
- Перейти в файл Info.plist
- Наведите курсор на одну из этих строк и появится кнопка (+) и (-).
- Нажмите кнопку "плюс", чтобы добавить новый ключ
- Введите начальное значение с капиталом V и автоматически первый выбор будет Просмотр состояния строки состояния на основе контроллера. Добавьте это как КЛЮЧ.
- Установите для VALUE значение "НЕТ"
- Перейти к вам AppDelegate.m для Objective-C (для быстрого языка: AppDelegate.swift)
- Добавьте код внутри метода
Для 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
}
Ответ 2
в info.plist добавьте следующие два свойства.
View controller-based status bar appearance (NO)
Status bar is initially hidden (YES)
Ответ 3
Я знаю, что в документации 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;
}
Ответ 4
Здесь вы можете легко получить контроль над видимостью строки состояния для 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
, когда захотите.
Ответ 5
Если по какой-то причине вам понадобится View controller-based status bar appearance
, равный YES
(например, чтобы сохранить строку состояния белой)
в приложении AppDelegate didFinishLaunchingWithOptions
или везде, где вы настраиваете свой навигационный контроллер:
yourNavigationController.navigationBar.barStyle = .black
затем используйте alex-staravoitau удивительный ответ и добавьте этот код, где бы вы ни скрывали строку состояния:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
Я не уверен, что это правильный способ достичь этого результата, но это сработало для меня, и я надеюсь, что это тоже поможет кому-то еще:)
Ответ 6
В большинстве iOS он будет работать. Я тестировал с iOS 10.
- Открыть info.plist
- "Просмотр состояния строки состояния на основе контроллера" установлен на NO
- "Строка состояния изначально скрыта" установлена на YES
- Готово
Ответ 7
windowLevel
подходом было бы установить, что windowLevel
приложения является либо нормальным, либо statusBar на основе ваших потребностей, поэтому для начала
Objective-C
Скрыть строку состояния
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelStatusBar;
Показать строку состояния
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelNormal;
Также добавьте Key
(вид на панели управления на основе контроллера) с логическим значением NO.
![enter image description here]()