Скрыть строку состояния в 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;
    }
    

и добавьте

  1. 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