ios - 使用 prefersLargeTitles 和 UITableView 平滑滚动

标签 ios uitableview scroll uinavigationbar ios11

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

如果我在导航 Controller 中设置 prefersLargeTitles 并且它的根是 UITableViewController 一切都很好,导航大标题的滚动方式与我们在系统应用(在 iOS 11+ 中)

问题

enter image description here

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

最佳答案

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

如果 UITableView 使用Align top to: Safe Area constraint (除了底部,leading and trailing to Safe Area) 并且不在栏下扩展。

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

edgesForExtendedLayout = .top
extendedLayoutIncludesOpaqueBars = true

或者使用导航栏的 isTranslucent = true 来扩展它。

关于ios - 使用 prefersLargeTitles 和 UITableView 平滑滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46570313/

相关文章:

ios - 如何获取 UITableViews 中 UITextField 的所有字符串值

iphone - 同时加载行和整个表时崩溃

swift - 为什么 IQKeyboardManager 不滚动我的 UITableView 以使我的自定义单元格的文本字段可见

css - SVG 作为超大网站背景

javascript - .scrollTop(0) 无法让 div 滚动到顶部

ios - 当我在 iPad 上收到 "Unable to Verify App"错误时该怎么办?

ios - UITabBar 选定的选项卡在启动时不会更改色调颜色

ios - iOS 中的导航栏

ios - 如何在应用程序启动时使用首选项 plist 在 iPhone 4 iOS 6 中切换手电筒功能

ios - 点击标签栏时将表格 View 滚动到顶部