关于将状态栏变为白色,我们确实有很多问题,但我想知道如何根据状态栏下方的内容将其变为白色或黑色,就像 iOS 9 的音乐应用程序一样,是否可以制作这会随任何 api 动态变化,还是我必须手动决定状态栏的颜色?
这就是我现在将它变成白色的方式(这不是我想要的):
在 info.plist
中,将 NO
分配给此 View controller-based status bar appearance
。然后在我的 app delegate 的
didFinishLaunchingWithOptions
中:
UIApplication.shared.statusBarStyle = .lightContent
最佳答案
您必须手动决定状态栏颜色。您可以检查状态栏的背景是否较暗,然后显示浅色内容样式。
您可以通过以下代码检查 UIColor 是否变暗。
extension UIColor
{
func isLight() -> Bool
{
let components = CGColorGetComponents(self.CGColor)
let brightness = ((components[0] * 299) + (components[1] * 587) + (components[2] * 114)) / 1000
if brightness < 0.5
{
return false
}
else
{
return true
}
}
}
如果您需要帮助或有任何疑问,请告诉我。
关于ios - 根据下面的内容更改状态栏的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39755932/