将 UINavigationBar 附加到 UIScrollView 以获得缩小的标题

Attach UINavigationBar to UIScrollView to get shrinking title

我有一个 UIViewController,里面有一个 UITableView。我需要在 UIViewController 中而不是在 UINavigationController 中使用它,以支持应用程序设计中的一些其他功能。在 iOS 11 及更高版本中,Apple 向 UINavigationBars 引入了一个大标题效果,当用户向下滚动时该效果会缩小。如何在不使用 UITableViewController 的情况下实现此行为?

您可以只放置一个 UITableView/Scroll 视图,并将相对于 superview 的底部和顶部约束设置为 0。

并且在呈现此页面时将其作为 rootViewController 放在里面 let rootVc = UINavigationController(rootViewController: 'your view controller') 还启用 rootVC.preferredLargeTitle = true

因此,如果您的 tableView 有更多单元格,并且当您滚动时,导航栏会自行缩小。