当用户向上滚动表格时,我会隐藏导航栏。
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
if self.navigationController?.navigationBarHidden == false {
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
}
但是这种方法也隐藏了状态栏。
无法保留状态栏。这些方法不起作用:
UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: .None)
prefersStatusBarHidden()
请帮忙!
答案 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