setStatusBarHidden(_:withAnimation:) deprecated in iOS 9

jacobsieradzki picture jacobsieradzki · Sep 27, 2015 · Viewed 19.5k times · Source

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?

Answer

Leo picture Leo · Sep 27, 2015

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
    }
 }