我想动态更改状态栏颜色在.lightContent
和.default
之间(因为我的背景可以在同一个ViewController中更改)。
我已经尝试过创建一个如下所示的函数:
func changeStatusBar(useDefault: Bool) {
if useDefault {
var preferredStatusBarStyle: UIStatusBarStyle {
return .default
}
} else {
var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
setNeedsStatusBarAppearanceUpdate()
}
但是没有运气。我在网上找到的每个指南(或在Stackoverflow上找到的)都只显示如何通过函数一次性更改状态栏,而不是打开和关闭。
我还将View controller-based status bar appearance
设置为NO
在info.plist
文件中。
我曾经使用的代码行是UIApplication.shared.statusBarStyle = .lightContent
- 但由于自iOS9以来已过时,所以我不能再使用它了。
有人有什么想法可以实现动态更改状态栏吗?
override var preferredStatusBarStyle: UIStatusBarStyle { return self.style }
没有被调用来进行更改...你们有什么想法吗?同时var style : UIStatusBarStyle = .default
和setNeedsStatusBarAppearanceUpdate()
也被调用了。 - Giovanni Palusa