使用动画更改状态栏样式
Change status bar style with animation
由于 UIApplication.shared.setStatusBarStyle(.default, animated: true)
已从 IOS9 中弃用,是否可以在 push
上使用 动画 更改状态栏样式?我在文档中找不到任何描述。
它现在是您必须覆盖的变量:
override var preferredStatusBarStyle: UIStatusBarStyle
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation
根据更新状态栏的时间,您可能还需要调用 setNeedsStatusBarAppearanceUpdate()
如果您想设置状态栏样式,应用程序级别然后在您的.plist
文件中将UIViewControllerBasedStatusBarAppearance
设置为NO
。
如果您想在视图控制器级别设置状态栏样式,请按照以下步骤操作:
- 如果您只需要在 UIViewController 级别设置状态栏样式,请在
.plist
文件中将 UIViewControllerBasedStatusBarAppearance
设置为 YES
。
在viewDidLoad中添加函数——setNeedsStatusBarAppearanceUpdate
在您的视图控制器中覆盖 preferredStatusBarStyle。
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
根据状态栏样式设置级别设置.plist的值。
为了按照我在 .lightContent
和 .default
之间平滑过渡的方式处理动画部分,每次更改时都使用类似于下面的内容。
UIView.animate(withDuration: 0.2) {
self.setNeedsStatusBarAppearanceUpdate()
}
在您的 VC 中放置您希望状态栏具有动画效果的内容,您将获得一个非常流畅的动画效果。
override var preferredStatusBarStyle: UIStatusBarStyle {
return lightStatusBar ? .lightContent : .default
}
以上是我根据自己的条件更改内容的片段。
由于 UIApplication.shared.setStatusBarStyle(.default, animated: true)
已从 IOS9 中弃用,是否可以在 push
上使用 动画 更改状态栏样式?我在文档中找不到任何描述。
它现在是您必须覆盖的变量:
override var preferredStatusBarStyle: UIStatusBarStyle
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation
根据更新状态栏的时间,您可能还需要调用 setNeedsStatusBarAppearanceUpdate()
如果您想设置状态栏样式,应用程序级别然后在您的.plist
文件中将UIViewControllerBasedStatusBarAppearance
设置为NO
。
如果您想在视图控制器级别设置状态栏样式,请按照以下步骤操作:
- 如果您只需要在 UIViewController 级别设置状态栏样式,请在
.plist
文件中将UIViewControllerBasedStatusBarAppearance
设置为YES
。 在viewDidLoad中添加函数——
setNeedsStatusBarAppearanceUpdate
在您的视图控制器中覆盖 preferredStatusBarStyle。
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
根据状态栏样式设置级别设置.plist的值。
为了按照我在 .lightContent
和 .default
之间平滑过渡的方式处理动画部分,每次更改时都使用类似于下面的内容。
UIView.animate(withDuration: 0.2) {
self.setNeedsStatusBarAppearanceUpdate()
}
在您的 VC 中放置您希望状态栏具有动画效果的内容,您将获得一个非常流畅的动画效果。
override var preferredStatusBarStyle: UIStatusBarStyle {
return lightStatusBar ? .lightContent : .default
}
以上是我根据自己的条件更改内容的片段。