Swift ios导航栏在被滚动隐藏后不会出现
Posted
技术标签:
【中文标题】Swift ios导航栏在被滚动隐藏后不会出现【英文标题】:Swift ios navigation bar wont appear after hidden by scroll 【发布时间】:2015-10-08 17:11:57 【问题描述】:如果重要的话,我的 VC 的结构是 View -> Scroll View -> View
。
然后我使用此代码在滚动发生时隐藏导航栏。唯一的问题是一旦栏被隐藏它就不会再次显示。只有一条白线可见(载体、电池等)。
override func viewDidAppear(animated: Bool)
super.viewDidAppear(animated)
navigationController?.hidesBarsOnSwipe = true
所以我现在的问题是如何再次显示该栏?
提前致谢
编辑,苹果文档:
讨论 当此属性设置为 true 时,向上滑动会隐藏导航栏和工具栏。向下滑动再次显示两个条形。如果工具栏没有任何项目,即使在滑动之后它仍然可见。此属性的默认值为 false。
【问题讨论】:
【参考方案1】:如果您使用的是滚动视图,那么您必须使用滚动视图委托函数scrollViewDidScroll(_ scrollView:)
,如下所示,在viewDidLoad()
或viewDidAppear()
中使用navigationController?.hidesBarsOnSwipe = true
或viewDidAppear()
extension ViewController: UIScrollViewDelegate
func scrollViewDidScroll(_ scrollView: UIScrollView)
let translation = scrollView.panGestureRecognizer.translation(in: scrollView.superview)
if translation.y >= 0
UIView.animate(withDuration: 0.4)
self.navigationController?.isNavigationBarHidden = false
【讨论】:
以上是关于Swift ios导航栏在被滚动隐藏后不会出现的主要内容,如果未能解决你的问题,请参考以下文章