在Swift 3中更改状态栏背景颜色
在XCode 7.3.x中,我用以下方法更改了StatusBar的背景颜色:
func setStatusBarBackgroundColor(color: UIColor) {guard let statusBar = UIApplication.sharedApplication().valueForKey("statusBarWindow")?.valueForKey("statusBar") as? UIView else {
return
}
statusBar.backgroundColor = color
}
但是似乎这在Swift 3.0中不再起作用。
病态尝试:
func setStatusBarBackgroundColor(color: UIColor) {guard let statusBar = (UIApplication.shared.value(forKey: "statusBarWindow") as AnyObject).value(forKey: "statusBar") as? UIView else {
return
}
statusBar.backgroundColor = color
}
但这给了我:
this class is not key value coding-compliant for the key statusBar.
有任何想法如何使用XCode8 / Swift 3.0进行更改吗?
回答:
extension UIApplication {
var statusBarView: UIView? {
if responds(to: Selector((“statusBar”))) {
return value(forKey: “statusBar”) as? UIView
}
return nil
}
}
UIApplication.shared.statusBarView?.backgroundColor = .red
在UIApplication上名为-statusBar或-
statusBarWindow的应用程序:必须更改此代码,因为不再有状态栏或状态栏窗口。而是在窗口场景上使用statusBarManager对象。
以上是 在Swift 3中更改状态栏背景颜色 的全部内容, 来源链接: utcz.com/qa/425153.html