Как я могу изменить цвет текста в строке состояния. Скриншот прилагается

Я хочу изменить цвет текста строки состояния на цвет клиента, как прилагается скриншот.

Я использовал это, чтобы сделать его легким -

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

Но цвет текста не меняется. Кто-нибудь может помочь?

Снимок экрана строки состояния


person iDilip    schedule 27.03.2017    source источник
comment
проверить http://stackoverflow.com/questions/17678881/how-to-change-status-bar-text-color-in-ios-7.   -  person iAviator    schedule 27.03.2017
comment
@iAviator Уже проверил этот ответ, но он не меняет цвет текста строки состояния на розовый.   -  person iDilip    schedule 27.03.2017
comment
Но ответ в треде - единственный правильный ответ. Так как вы не можете изменить цвет текста самостоятельно.   -  person rckoenes    schedule 27.03.2017


Ответы (4)


Вот Руководство/Инструкция Apple о статусе смена бара. В строке состояния разрешены только темные и светлые (в то время как и черные). Это не позволяет установить цвет (розовый, как показано на вашем изображении) в строке состояния.

Вот как изменить стиль строки состояния:

Если вы хотите установить стиль строки состояния на уровне приложения, установите UIViewControllerBasedStatusBarAppearance в NO в вашем файле `.plist'.

если вы хотите установить стиль строки состояния на уровне контроллера представления, выполните следующие действия:

  1. Установите UIViewControllerBasedStatusBarAppearance в YES в файле .plist, если вам нужно установить стиль строки состояния только на уровне UIViewController.
  2. В viewDidLoad добавить функцию - setNeedsStatusBarAppearanceUpdate

  3. переопределите предпочтительныйStatusBarStyle в вашем контроллере представления.

-

override func viewDidLoad() {
    super.viewDidLoad()
    self.setNeedsStatusBarAppearanceUpdate()
}

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

Установите значение .plist в соответствии с уровнем настройки стиля строки состояния. введите здесь описание изображения


Вы можете установить цвет фона для строки состояния во время запуска приложения или во время viewDidLoad вашего контроллера представления.

extension UIApplication {

    var statusBarView: UIView? {
        return value(forKey: "statusBar") as? UIView
    }

}

// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
        return true
    }
}


or 
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
    }

}



Вот результат:

введите здесь описание изображения

person Krunal    schedule 27.03.2017

Установите UIViewControllerBasedStatusBarAppearance в YES в файле .plist.

В методе viewDidLoad выполните

[self setNeedsStatusBarAppearanceUpdate];

Добавьте следующий метод:

- (UIStatusBarStyle)preferredStatusBarStyle
{ 
    return UIStatusBarStyleLightContent; 
}
person Abhishek Gupta    schedule 27.03.2017

Если ваше приложение будет поддерживать, в Info.plist вашего приложения установите для параметра "Просмотр внешнего вида строки состояния на основе контроллера" значение NO.

В appDelegate.swift внутри функции didFinishLaunchingWithOptions добавьте:

UIApplication.shared.statusBarStyle = .lightContent

Лучший ответ описан здесь: Как установить стиль строки состояния в Swift 3

person nirojan    schedule 10.06.2019
comment
Сеттер для 'statusBarStyle' устарел в iOS 9.0: используйте -[UIViewController предпочитаемыйStatusBarStyle] - person Green Y.; 03.02.2020

Цвет текста строки состояния может быть белым или черным.

person Jagdeep Singh    schedule 27.03.2017