我使用以下代码来更改ViewController
中的StatusBar颜色:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
UIApplication.shared.statusBarStyle = .lightContent
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}
并将View controller-based status bar appearance
中的参数info.plist
设置为NO
但是问题是StatusBar的颜色从黑色变为白色而没有动画,我想在这些状态之间进行平滑过渡。有什么想法吗?
Xcode 10 Beta 5,iOS 12 Dev Beta 6
答案 0 :(得分:3)
您可以为一个VC设置以下内容
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
,然后将另一个设置如下
override var preferredStatusBarStyle: UIStatusBarStyle {
return UIStatusBarStyle.default
}
答案 1 :(得分:0)
您可以尝试以下方法:
override var preferredStatusBarStyle: UIStatusBarStyle
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation
每当您希望进行此转换时,都必须调用setNeedsStatusBarAppearanceUpdate()
(通常在 viewWillAppear 中)