刚刚下载了新的xCode 10.0,并发现自iOS 9.0起不赞成使用旧的statusBarStyle。
警告: Setter for 'statusBarStyle' was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]
Setter for 'statusBarStyle' was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]
不推荐使用的代码: UIApplication.shared.statusBarStyle = .default
UIApplication.shared.statusBarStyle = .default
我尝试使用self.preferredStatusBarStyle,但发现该属性只是一个吸气剂。所以谁知道如何设置statusBarStyle?
self.preferredStatusBarStyle
statusBarStyle
我想在一个函数内更改statusBarStyle,用户可以在其中切换不同的主题。例如:
func changeStatusBar(toDarkMode: Bool) { if toDarkMode { // Set to light statusBarStyle } else { // Set to default } }
使用与现在相同的代码设置darkMode变量,然后在系统期望的计算变量中使用它:
var darkMode = false override var preferredStatusBarStyle : UIStatusBarStyle { return darkMode ? .default : .lightContent }
根据上下文,您可能需要强制刷新屏幕以使其生效。您可以通过以下调用进行操作:
setNeedsStatusBarAppearanceUpdate()