【问题标题】:Status bar not the same color as the Navigation Bar状态栏与导航栏颜色不同
【发布时间】:2017-10-22 18:55:27
【问题描述】:

我有一个导航控制器,我用某种颜色为导航栏着色,并且我希望状态栏(显示运营商、wifi 符号等)使用相同的颜色。

所以在Info.plist 中,我将View controller-based status bar appearance equal 设置为NO。在Target > Deployment Info 中我设置了Status Bar Style > Light

我可以看到状态栏现在确实使用“浅色”样式,因为文本是浅色/白色的。但是状态栏背景仍然与如下所示的导航栏不同。我该如何纠正这个问题?

【问题讨论】:

    标签: ios11 xcode9 swift4 uistatusbar


    【解决方案1】:

    你必须像这样使用:

    if let statusBar: UIView = UIApplication.shared.value(forKey: "statusBar") as? UIView {
        statusBar.backgroundColor = UIColor.purple
    }
    

    如果您想更改整个应用程序的状态栏颜色,请在appdelegate->didFinishLaunchingWithOptions 中使用它。或者,如果您想针对任何特定屏幕进行更改,请在特定的 viewDidLoad 中调用它。

    【讨论】:

    • 它有效,但我不确定这是否是最佳解决方案。当我将状态栏样式更改为“浅色”时,它应该会自动呈现导航栏的颜色,对吧?
    • @rgamber,你找到更优化的解决方案了吗?
    • 很遗憾没有。似乎没有其他任何工作,所以暂时求助于这个。如果您发现任何其他方式,请在此处发布!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多