动画UIStatusBar ios9 +(快速)

问题描述 投票:-1回答:1

我正在尝试根据滚动视图的滚动方向设置状态栏的动画。目前,我可以隐藏状态栏,但是我无法将更改设置为动画。

我认为有一个方法确实处理了这个,考虑到导航栏存在一个方法,我找到了方法setStatusBarHidden(_:with:),但是这个方法似乎从ios9开始就被弃用了。

我正在动画块中设置状态并调用.setNeedsStatusBarAppearanceUpdate(),如下所示

DispatchQueue.main.async {
            UIView.animate(withDuration: 0.3, delay: 0, options: UIViewAnimationOptions.curveEaseOut, animations: {
                UIApplication.shared.isStatusBarHidden = true
                self.setNeedsStatusBarAppearanceUpdate()
            }, completion: { (completed) in
            })
        }

还有一件事,是否仍然可以设置动画风格?之前,使用setStatusBarHidden方法,您可以选择几种不同的动画样式(淡入淡出和幻灯片)。

ios swift uistatusbar
1个回答
1
投票

你在做什么永远是对的。您不应该与共享应用程序通信。它是顶级视图控制器,通过其prefersStatusBarHidden属性的值来负责状态栏的可见性。

以下代码段演示了顶级视图控制器如何使用动画切换状态栏可见性(为了演示目的,响应按钮的响应):

var hide = false
override var prefersStatusBarHidden : Bool {
    return self.hide
}
@IBAction func doButton(_ sender: Any) {
    self.hide = !self.hide
    UIView.animate(withDuration:0.4) {
        self.setNeedsStatusBarAppearanceUpdate()
        self.view.layoutIfNeeded()
    }
}

.fade.slide也是如此;这些将作为顶级视图控制器覆盖preferredStatusBarUpdateAnimation属性的值给出。

© www.soinside.com 2019 - 2024. All rights reserved.