自从IOS9以来,UIApplication.shared.setStatusBarStyle(.default, animated: true)
已经被弃用,那么在push
时改变状态栏样式是否有动画效果呢?我在文档中找不到任何描述。
自从IOS9以来,UIApplication.shared.setStatusBarStyle(.default, animated: true)
已经被弃用,那么在push
时改变状态栏样式是否有动画效果呢?我在文档中找不到任何描述。
现在它是一个您必须覆盖的变量:
override var preferredStatusBarStyle: UIStatusBarStyle
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation
根据您更新状态栏的时间,您可能还需要调用setNeedsStatusBarAppearanceUpdate()
。
如果您想要设置状态栏样式的应用程序级别,请在您的.plist
文件中将UIViewControllerBasedStatusBarAppearance
设置为NO
。
如果您想要在视图控制器级别设置状态栏样式,则请按照以下步骤操作:
.plist
文件中设置UIViewControllerBasedStatusBarAppearance
为YES
。在viewDidLoad
中添加函数 - setNeedsStatusBarAppearanceUpdate
覆盖您的视图控制器中的preferredStatusBarStyle
。
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
.lightContent
和.default
之间平滑过渡,每次更改时使用类似以下的内容。UIView.animate(withDuration: 0.2) {
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return lightStatusBar ? .lightContent : .default
}