Search code examples
iosswiftios9statusbar

setStatusBarHidden(_:withAnimation:) deprecated in iOS 9


I see that in iOS 9 setStatusBarHidden(_:withAnimation:) is now deprecated and the documentation says to use [UIViewController prefersStatusBarHidden] instead but what is the alternative in iOS 9 if I still want to hide the status bar with a slide animation?


Solution

  • Refer to preferredStatusBarUpdateAnimation,

    Gif

    enter image description here

    Code

    class ViewController: UIViewController {
        var isHidden:Bool = false{
            didSet{
                UIView.animate(withDuration: 0.5) { () -> Void in
                    self.setNeedsStatusBarAppearanceUpdate()
                }  
             }
        }
        @IBAction func clicked(sender: AnyObject) {
            isHidden = !isHidden
        }
        override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation{
            return .slide
        }
        override var prefersStatusBarHidden: Bool{
            return isHidden
        }
     }