如何使用按钮更改状态栏的颜色?

时间:2017-06-26 10:25:37

标签: ios swift xcode statusbar uistatusbar

我试图实现一个按钮,将我的应用背景从白色变为黑色以及状态栏的颜色。现在我有

@IBAction func buttonTapped(_ sender: Any) {
        self.view.backgroundColor = UIColor.black
        UIApplication.shared.statusBarStyle = .lightContent
}

这似乎不起作用。有没有人知道如何在不重新加载整个视图的情况下更改状态栏字体的颜色?

1 个答案:

答案 0 :(得分:2)

如果要设置状态栏样式,应用程序级别,请在UIViewControllerBasedStatusBarAppearance文件中将NO设置为.plist

如果您要在视图控制器级别设置状态栏样式,请按照以下步骤操作:

  1. 如果您只需要在UIViewController级别设置状态栏样式,请在UIViewControllerBasedStatusBarAppearance文件中将YES设置为.plist
  2. 在viewDidLoad添加功能 - setNeedsStatusBarAppearanceUpdate

  3. 覆盖视图控制器中的preferredStatusBarStyle。

  4. -

    override func viewDidLoad() {
        super.viewDidLoad()
        self.setNeedsStatusBarAppearanceUpdate()
    }
    
    override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }
    

    根据状态栏样式设置级别设置.plist的值。 enter image description here