滚动时隐藏导航栏

我想知道,如果它的确定通过iOS人机界面准则来devise一个UIView,使它看起来像一个导航栏。

我的问题是,我想隐藏当前的导航栏,一旦用户滚动。 我已经尝试self.navigationController?.setNavigationBarHidden(true, animated: true)navigationController?.hidesBarsOnSwipe = true但animation看起来很奇怪,一旦导航栏被隐藏我仍然有状态栏下面约20px的空间:你可以看在我的另一个问题

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

试试这个:

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

你必须在代码的某个地方更新bars并调用setNeedsStatusBarAppearanceUpdate()方法。