使用 prefersLargeTitles 和 UITableView 平滑滚动
Smooth scrolling with prefersLargeTitles and UITableView
我在使用 prefersLargeTitles
并添加 UITableView
时遇到滚动问题。
如果我在导航控制器中设置 prefersLargeTitles
并且它的根是 UITableViewController
一切都很好,导航大标题的滚动方式与我们在系统应用程序中看到的方式相同 (在iOS 11+).
问题
但是,如果我使用 UIViewController
并在其中添加 UITableView
,滚动似乎会有所不同。导航栏移动 more/faster 比我实际滚动。它只是 hides/shows 每当我滚动到一个触发它的位置时的大标题,所以我最终会有完全不同的感觉。
原来是布局导致了这个问题。
如果 UITableView
使用 将顶部对齐到:安全区域 约束 (除了底部,前导和尾随 Safe Area
) 并没有扩展下吧。
但是,如果我使用扩展布局,将顶部与 superview
对齐,我仍然可以使用 UITableView
并获得大标题及其导航栏的正确行为。
edgesForExtendedLayout = .top
extendedLayoutIncludesOpaqueBars = true
或者使用导航栏的 isTranslucent = true
来扩展它。
我在使用 prefersLargeTitles
并添加 UITableView
时遇到滚动问题。
如果我在导航控制器中设置 prefersLargeTitles
并且它的根是 UITableViewController
一切都很好,导航大标题的滚动方式与我们在系统应用程序中看到的方式相同 (在iOS 11+).
问题
但是,如果我使用 UIViewController
并在其中添加 UITableView
,滚动似乎会有所不同。导航栏移动 more/faster 比我实际滚动。它只是 hides/shows 每当我滚动到一个触发它的位置时的大标题,所以我最终会有完全不同的感觉。
原来是布局导致了这个问题。
如果 UITableView
使用 将顶部对齐到:安全区域 约束 (除了底部,前导和尾随 Safe Area
) 并没有扩展下吧。
但是,如果我使用扩展布局,将顶部与 superview
对齐,我仍然可以使用 UITableView
并获得大标题及其导航栏的正确行为。
edgesForExtendedLayout = .top
extendedLayoutIncludesOpaqueBars = true
或者使用导航栏的 isTranslucent = true
来扩展它。