隐藏导航栏时显示状态栏

时间:2015-12-23 06:32:29

标签: ios swift navbar statusbar

当用户向上滚动表格时,我会隐藏导航栏。

func scrollViewWillBeginDragging(scrollView: UIScrollView) {
    if self.navigationController?.navigationBarHidden == false {
        self.navigationController?.setNavigationBarHidden(true, animated: true)
    }
}

但是这种方法也隐藏了状态栏。

无法保留状态栏。这些方法不起作用:

UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: .None)
prefersStatusBarHidden()

请帮忙!

3 个答案:

答案 0 :(得分:5)

如果您想隐藏并在scrollView上显示导航栏。

你可以override viewDidAppear。 &安培;使用导航控制器的hidesBarsOnSwipe属性。

  

覆盖func viewDidAppear(动画:Bool){

    super.viewDidAppear(animated)

    navigationController?.hidesBarsOnSwipe = true

}

希望这个答案可以帮到你。

答案 1 :(得分:3)

尝试制作变量shouldHideStatusBar

并覆盖此功能:

override func prefersStatusBarHidden() -> Bool {
    return shouldHideStatusBar
}

滚动时:

shouldHideStatusBar = true/false
self.setNeedsStatusBarAppearanceUpdate()

希望得到这个帮助。

答案 2 :(得分:1)

是我的错。状态栏没有被隐藏,它只是像桌面视图背景一样白。只需在隐藏导航栏时设置此项:

UIApplication.shared.statusBarStyle = .default