刚刚下载了新的xCode 10.0,并且发现旧的statusBarStyle自iOS 9.0以来已被弃用.
警告: Setter for 'statusBarStyle' was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]
不推荐的代码:
UIApplication.shared.statusBarStyle = .default
我尝试过使用self.preferredStatusBarStyle,但发现该物业只是一个吸气剂.所以任何人都知道如何设置statusBarStyle?
我想在一个函数中更改statusBarStyle,用户可以在不同的主题之间切换.例如:
func changeStatusBar(toDarkMode: Bool) {
if toDarkMode {
// Set to light statusBarStyle
} else {
// Set to default
}
}
Run Code Online (Sandbox Code Playgroud)
Pav*_*los 39
添加View controller-based status bar appearance NO在Info.plist
并在部署信息中选择状态栏样式中的灯光
Md *_*vez 24
在swift4中,你可以viewDidLoad()在下面的代码中使用这段代码ViewController-
override var preferredStatusBarStyle : UIStatusBarStyle {
return .lightContent
}
Run Code Online (Sandbox Code Playgroud)
Pau*_*ing 24
使用您现在使用的相同代码设置darkMode变量,然后在系统期望的计算变量中使用它:
var darkMode = false
override var preferredStatusBarStyle : UIStatusBarStyle {
return darkMode ? .default : .lightContent
}
Run Code Online (Sandbox Code Playgroud)
根据上下文,您可能需要强制刷新屏幕才能使其生效.您可以通过以下调用执行此操作:
setNeedsStatusBarAppearanceUpdate()
Run Code Online (Sandbox Code Playgroud)
Cry*_*ppo 10
如果您使用UINavigationController,您可能还想使用以下代码:
extension UINavigationController {
open override var preferredStatusBarStyle: UIStatusBarStyle {
return topViewController?.preferredStatusBarStyle ?? .default
}
}
Run Code Online (Sandbox Code Playgroud)
原因是setNeedsStatusBarAppearanceUpdate()不叫孩子preferredStatusBarStyle
没有其他建议对我有用。我最终通过以下方法使它起作用:
设置:
override var preferredStatusBarStyle : UIStatusBarStyle {
return .lightContent
}
Run Code Online (Sandbox Code Playgroud)致电:
setNeedsStatusBarAppearanceUpdate()
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
20148 次 |
| 最近记录: |