【问题标题】:Hide navigation bar on scroll滚动时隐藏导航栏
【发布时间】:2017-03-03 16:45:24
【问题描述】:

我想知道 iOS 人机界面指南是否可以设置 UIView 的样式,使其外观和行为类似于导航栏。

我的问题是,一旦用户滚动,我想隐藏我当前的导航栏。 self.navigationController?.setNavigationBarHidden(true, animated: true) 和 navigationController?.hidesBarsOnSwipe = true 我都试过了,但是动画看起来很奇怪,一旦导航栏被隐藏,我在状态栏下还有大约 20px 的空间:你可以看看我的另一个 question

为了让事情变得更简单,我可以在隐藏的导航栏上初始化我的视图并设置自己的样式并添加适当的动画吗?

【问题讨论】:

  • 是的,这完全没问题。只要确保它的行为对于 iOS 用户来说是不可预测的。
  • 只需创建看起来像导航栏的视图,然后执行隐藏和显示。并隐藏原来的导航栏。
  • 为什么“Swift”是问题标题的一部分?这是一个框架问题。

标签: ios swift xcode navbar


【解决方案1】:

试试这个:

extension YourViewController {
   override func prefersStatusBarHidden() -> Bool {
      return barsHidden // Custom property
   }

   override func preferredStatusBarUpdateAnimation() -> UIStatusBarAnimation {
      return .Slide
   }
}

你必须更新代码中某处的barsHidden并调用setNeedsStatusBarAppearanceUpdate()方法。

【讨论】:

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