【问题标题】:Show status bar when hide navigation bar隐藏导航栏时显示状态栏
【发布时间】:2016-03-29 13:09:34
【问题描述】:

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

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

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

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

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

请帮忙!

【问题讨论】:

  • 转到 info.plist 并添加两个属性(如果不存在)。将“状态栏最初隐藏”设置为 NO 并将 UIViewControllerBasedStatusBarAppearance 设置为 NO。

标签: ios swift navbar statusbar


【解决方案1】:

如果你想在 scrollView 上隐藏和显示导航栏。

您可以override viewDidAppear。 & 使用导航控制器的hidesBarsOnSwipe 属性。

覆盖 func viewDidAppear(animated: Bool) {

    super.viewDidAppear(animated)
    
    navigationController?.hidesBarsOnSwipe = true

}

希望这个答案对你有所帮助。

【讨论】:

    【解决方案2】:

    尝试创建一个变量shouldHideStatusBar

    并覆盖这个函数:

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

    当滚动放置时:

    shouldHideStatusBar = true/false
    self.setNeedsStatusBarAppearanceUpdate()
    

    希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      是我的错。状态栏没有隐藏,它只是像表格视图背景一样的白色。只需在导航栏隐藏时设置:

      UIApplication.shared.statusBarStyle = .default
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多