iOS StatusBar颜色更改动画

时间:2018-08-07 11:01:49

标签: ios swift statusbar

我使用以下代码来更改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

2 个答案:

答案 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 中)