问题描述
在 iOS 15 beta 和 Xcode 13 beta 2 中,一些自定义 UITableViewController 决定在导航栏和表格视图之间添加填充。
重现步骤:
添加两个 UITableViewController,结构如下所示:UINavigationController -> UITableViewController -> UITableViewController。
添加表格视图委托方法 heightForHeaderInSection 并返回一个小值。
在 viewDidLoad 或 viewWillAppear 方法中进行 API 调用。
解决问题的措施:
[self.tableView setSectionHeaderTopPadding:0.0f]; // Not working
[self.tableView setContentInset:-35.0f]; // Works but is not dynamic
在 Xcode 13 beta 2、iOS 15 beta 2、iPhone 12 模拟器、iPhone Xs 上测试
显示问题的演示项目:Github link
标题部分应该只有 30 pt/px,但显然不是:
Link to original Apple Developer forum thread
解决方法
您可以尝试像这样使用 UITableView.sectionHeaderTopPadding
-
if #available(iOS 15,*) {
tableView.sectionHeaderTopPadding = 0
}