在特定 viewcontroller 中隐藏状态栏

Hiding a statusbar in specifc viewcontroller

我正在尝试实现与您在 facebook 中显示状态栏逐渐消失的图片时相同的效果。我在下面尝试过,但似乎什么也没发生,我该怎么做才能淡出状态栏?

override func viewDidLoad() {
    self.view.backgroundColor = UIColor.blackColor()

    //Set ImageView
    imageView.image = galleryImage

    self.setNeedsStatusBarAppearanceUpdate()

}

override func preferredStatusBarUpdateAnimation() -> UIStatusBarAnimation {
    return UIStatusBarAnimation.Fade
}
override func prefersStatusBarHidden() -> Bool {
    return true
}

在您的 info.plist 中添加名为 View controller-based status bar appearance 的行并将其设置为 NO

然后在viewDidload中调用下面的代码应该会隐藏动画:

UIApplication.sharedApplication().statusBarHidden = true

之后,您将在控制台中收到如下警告:

CGContextSaveGState: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

忽略它,因为他们说它是 apple 的一个错误,参考这里: