使用prefersLargeTitles和UITableView进行平滑滚动

时间:2017-10-04 16:59:19

标签: ios uitableview scroll uinavigationbar ios11

使用prefersLargeTitles并添加UITableView时,我遇到滚动问题。

如果我在导航控制器中设置prefersLargeTitles并且其根目录是UITableViewController一切都很好,滚动导航大标题的方式与我们在系统应用中看到的方式相同 (在iOS 11 +中)

问题

enter image description here

但是,如果我使用UIViewController并在其中添加UITableView,则滚动似乎采取不同的行动。导航栏比我实际滚动更快/更快。只要我滚动到一个只触发它的位置,它就会隐藏/显示大标题,所以我最终会有完全不同的感觉。

1 个答案:

答案 0 :(得分:12)

原来布局导致了这个问题。

如果UITableView使用将顶部对齐:安全区域约束(除了底部,前导和尾随Safe Area,则会出现此问题并且没有延伸到酒吧。

但是,如果我使用扩展布局,请将顶部对齐到superview,我仍然可以使用UITableView并获得大标题及其导航栏的正确行为。

edgesForExtendedLayout = .top
extendedLayoutIncludesOpaqueBars = true

或者使用导航栏isTranslucent = true也可以扩展它。