通过滚动隐藏后,Swift ios导航栏不会出现

use*_*667 7 user-interface xcode uiviewcontroller ios swift

我的VC的结构View -> Scroll View -> View是否重要.

然后我使用此代码以便在滚动时隐藏导航栏.唯一的问题是一旦酒吧被隐藏它不会再显示.只有白线可见(载体,电池等).

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

        navigationController?.hidesBarsOnSwipe = true
    }
Run Code Online (Sandbox Code Playgroud)

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

提前致谢

编辑,苹果文档:

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

小智 0

如果您使用的是scrollView,那么您必须使用scrollView委托函数,scrollViewDidScroll(_ scrollView:)如下所示,带有navigationController?.hidesBarsOnSwipe = trueinviewDidLoad()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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

}