iOS 8增加了一个超级新的酷功能:当用户滚动时隐藏导航栏。
在viewDidload中只有一行:
navigationController?.hidesBarsOnSwipe = true很酷,不是吗?
但现在我有一个小问题:当导航栏被隐藏时,状态栏仍然在这里,并与内容重叠,这是丑陋的。
当导航栏被隐藏时,我应该怎么做才能使其隐藏?
发布于 2014-12-20 05:51:18
在UIViewController上覆盖以下方法:
extension MyViewController {
override func prefersStatusBarHidden() -> Bool {
return barsHidden // this is a custom property
}
// Override only if you want a different animation than the default
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return .slide
}
}在代码中的某处更新barsHidden并调用setNeedsStatusBarAppearanceUpdate()
发布于 2014-10-14 17:47:13
此问题已在Xcode 6.1中修复
navigationController?.navigationBar.hidden =真
发布于 2014-10-06 20:55:18
我的回答是基于this post上的一些评论,这些评论都是猜测。我不确定这是否会起作用,因为苹果没有给我们任何直接的方式或代理方法,当导航栏隐藏。
将UINavigationBar子类设置为NavigationBar。将属性观察器添加到其hidden属性,如下所示:
var hidden: Bool{
didSet{
UIApplication.sharedApplication().setStatusBarHidden(self.hidden, animation: .Slide)
}
}然后,您希望转到主视图控制器中的viewDidLoad方法,并将self.navigationBar属性(或self.navigationController.navigationBar,不确定是哪一个)设置为新NavigationBar类的实例。
请注意,我现在不能测试它,请让我知道它是如何工作的。
https://stackoverflow.com/questions/26197260
复制相似问题