当用户快速滚动表格视图时如何隐藏和取消隐藏导航栏?

Posted

技术标签:

【中文标题】当用户快速滚动表格视图时如何隐藏和取消隐藏导航栏?【英文标题】:how to hide and unhide navigation bar when user scroll the table view in swift? 【发布时间】:2018-06-17 14:33:50 【问题描述】:

我已经读过这个帖子Hide NavigationBar when scrolling tableView in CollectionView?

但我仍然无法得到我想要的。我知道有一个 pod 可以做到这一点,但我尽量避免使用 pod。

我想在用户向下滚动表格视图时隐藏导航栏,并且我希望在用户向上滚动回到顶部时返回导航栏。就像在 App Store 的“今天”栏中一样。

我试过用

override func viewWillAppear(_ animated: Bool) 
        super.viewWillAppear(animated)

        self.navigationController?.hidesBarsOnSwipe = true
    

当我向下滚动表格视图时它可以隐藏导航栏,但是当我向上滚动回到顶部时,导航栏仍然消失。

你可以看到这里是我无法取消隐藏导航栏的 .gif 文件:http://g.recordit.co/zIW2DkCc6j.gif

这是我的表格视图的约束

我该怎么办?或者也许你有其他代码?请分享:)

【问题讨论】:

你希望它完全隐藏? 不,我想要隐藏它之后,当用户向上滚动回到顶部时,我想要导航栏返回 链接的SO问题中有一些解决方案;您尝试了哪些,哪些不符合您的要求?另外,如果有 pod,有没有看 pod 的源码? 你能显示你的表格视图的约束吗? @dr_barto 是的,有一个 pod 可以解决这个问题,但我还没有看到。这有点奇怪,因为我在 youtube 上看到了只使用 self.navigationController?.hidesBarsOnSwipe = true 的教程,但是向上滚动时它可以恢复导航栏 【参考方案1】:

好的。你所做的是正确的(在代码中)。只需将表视图的顶部约束更改为以下内容:

【讨论】:

以上是关于当用户快速滚动表格视图时如何隐藏和取消隐藏导航栏?的主要内容,如果未能解决你的问题,请参考以下文章

如何在导航栏下隐藏搜索栏并在用户下拉表格视图时显示它?

iOS:滚动表格视图时隐藏和显示自定义导航栏

隐藏导航栏会导致其下方和上方的空间

iPhone:在为导航栏显示/隐藏设置动画时无法为 contentInset 设置动画

当用户在表格视图中向下滚动时隐藏视图

使用表格视图快速搜索控制器滚动