我有一个 tableView,它位于嵌入在导航控制器中的视图控制器内。
我想自定义大标题导航栏缩小为小导航栏的方式。通常,当您滚动到 tableView 的顶部时,小标题会扩展为大标题。但是,我需要大标题始终可见,直到您滚动经过某个单元格。在示例 gif 中,您会看到导航栏根据橙色单元格的位置缩小/扩展。您可以看到橙色单元格顶部还有许多其他蓝色单元格,其中大标题始终可见。
到目前为止我尝试了什么:
根据这个答案,我尝试添加一个帮助视图,以防止导航栏折叠。这行得通,但现在我需要弄清楚如何使这个动态化,所以大标题会在某个滚动位置后动画。
我尝试使用UIScrollViewDelegate
:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y >= 500 {
self.view.insertSubview(helperView, aboveSubview: tableView)
} else {
self.view.insertSubview(helperView, belowSubview: tableView)
}
}
但这不起作用,导航栏没有动态折叠。就在您转到另一个应用程序并切换回我的应用程序之后,导航栏改变了它的大小。
您是否知道根据某个滚动点而不是表格视图的顶部使大标题折叠/展开的更好方法?也许某种方式子类化导航栏?