iOS 13 настройка цвета фона строки состояния - PullRequest
0 голосов
/ 26 сентября 2019

Раньше у меня был приведенный ниже код, но после обновления до iOS 13 я получил ошибку ниже:

UIApplication.shared.statusBarView?.backgroundColor = UIColor(red: 94/225, green: 64/255, blue:204/255, alpha: 1.0)

Приложение под названием -statusBar или -statusBarWindow в UIApplication: этот код должен быть изменен, так как естьбольше не строка состояния или окно строки состояния.Вместо этого используйте объект statusBarManager на сцене окна. '

Как теперь можно установить цвет фона строки состояния?

В сообщении с предупреждением об использовании statusBarManager и поэтому я сделал что-то вроде этого,пока я не смог заставить его работать.

var statusBar = UIView()

    if #available(iOS 13.0, *) {
        statusBar = UIView(frame: UIApplication.shared.keyWindow?.windowScene?.statusBarManager?.statusBarFrame ?? CGRect.zero)
        statusBar.backgroundColor = UIColor.red
        UIApplication.shared.keyWindow?.addSubview(statusBar)
    } else {
        //ios 12 and below
        UIApplication.shared.statusBarView?.backgroundColor = UIColor(red: 94/225, green: 64/255, blue:204/255, alpha: 1.0)
    }

1 Ответ

0 голосов
/ 30 сентября 2019

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

https://freakycoder.com/ios-notes-13-how-to-change-status-bar-color-1431c185e845

Добавьте ниже в viewdidload.Пожалуйста, зайдите на его средний пост и дайте ему несколько хлопков!

if #available(iOS 13.0, *) {
        let app = UIApplication.shared
        let statusBarHeight: CGFloat = app.statusBarFrame.size.height

        let statusbarView = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: statusBarHeight))
        statusbarView.backgroundColor = UIColor.red
        view.addSubview(statusbarView)
    } else {
        let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView
        statusBar?.backgroundColor = UIColor.red
    }
...