【问题标题】:Swift ios navigation bar wont appear after hidden by scrollSwift ios导航栏在被滚动隐藏后不会出现
【发布时间】:2015-10-08 17:11:57
【问题描述】:

如果重要的话,我的 VC 的结构是 View -> Scroll View -> View

然后我使用此代码在滚动发生时隐藏导航栏。唯一的问题是一旦栏被隐藏它就不会再次显示。只有一条白线可见(载体、电池等)。

override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)

        navigationController?.hidesBarsOnSwipe = true
    }

所以我现在的问题是如何再次显示该栏?

提前致谢

编辑,苹果文档:

讨论 当此属性设置为 true 时,向上滑动会隐藏导航栏和工具栏。向下滑动再次显示两个条形。如果工具栏没有任何项目,即使在滑动之后它仍然可见。此属性的默认值为 false。

【问题讨论】:

    标签: ios xcode swift user-interface uiviewcontroller


    【解决方案1】:

    如果您使用的是滚动视图,那么您必须使用滚动视图委托函数scrollViewDidScroll(_ scrollView:),如下所示,在viewDidLoad()viewDidAppear() 中使用navigationController?.hidesBarsOnSwipe = trueviewDidAppear()

    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
            }
        }
    }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 2019-05-25
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多