如何在iPhoneX上设置statusBar颜色?

Jer*_*rny 8 iphone-x

我使用navigationController,我隐藏了navigationBar,如何在iPhoneX上设置statusBar颜色?我不想设置self.view.backgroundColor

iPhoneX缺口颜色

在此输入图像描述

Kru*_*nal 3

这是一个在应用程序启动期间或视图控制器的 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
    }

}
Run Code Online (Sandbox Code Playgroud)



这是结果:

在此输入图像描述