ios - 滚动时隐藏状态栏

标签 ios swift ios8 statusbar

iOS 8 添加了一个 super 酷炫的新功能:在用户滚动时隐藏导航栏。

这在 viewDidload 中有一行:

navigationController?.hidesBarsOnSwipe = true

很酷,不是吗?

但是现在有个小问题:当导航栏隐藏的时候,状态栏还在,并且和内容重叠,很丑。

导航栏隐藏的时候应该怎么做才能让它隐藏起来?

最佳答案

在 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()

关于ios - 滚动时隐藏状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26197260/

相关文章:

ios - swift 中的自定义 UIBezierPath(Arc 麻烦)

ios - 请求 accessToken 后,Splitwise API 返回 "Invalid OAuth Request"

ios - Push Segue 过渡动画有些断断续续

swift - 在 Swift 中没有导航 Controller 的情况下在 viewDidLoad() 中执行 segue

swift - iOS 8 通过 TextView 链接到网站

ios - 在加载时显示等待警报 View

javascript - Reactjs:拆分功能不起作用?

ios - UITableViewAutomaticDimension 未按预期工作。 swift

ios - 如何使用文档提供程序扩展?

ios - 构建 iOS8 扩展目标时出现重复符号