iOS StatusBar颜色变化动画

iOS StatusBar color change animation

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

并且info.plist中的参数View controller-based status bar appearance设置为NO

但问题是 StatusBar 颜色从黑色变为白色,没有动画,我想在这些状态之间平滑过渡。有什么想法吗?

Xcode 10 测试版 5,iOS 12 开发测试版 6

您可以为一个人设置关注VC

 override var preferredStatusBarStyle: UIStatusBarStyle {
        return .lightContent
    }

然后将另一个设置如下

override var preferredStatusBarStyle: UIStatusBarStyle {
        return UIStatusBarStyle.default
    }

你可以试试这个:

override var preferredStatusBarStyle: UIStatusBarStyle
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation

每当您希望发生此转换时,都需要调用 setNeedsStatusBarAppearanceUpdate()(主要在 viewWillAppear 中)