随着 iOS 15 beta 和 Xcode 13 beta 2 的推出,一些自定义的 UITableViewControllers 决定在导航栏和表视图之间添加填充。
复现步骤:
1. 添加两个 UITableViewControllers,使结构如下:UINavigationController -> UITableViewController -> UITableViewController。 2. 添加表视图委托方法 heightForHeaderInSection,并返回一个较小的值。 3. 在 viewDidLoad 或 viewWillAppear 方法中进行 API 调用。
解决问题的方法:
复现步骤:
1. 添加两个 UITableViewControllers,使结构如下:UINavigationController -> UITableViewController -> UITableViewController。 2. 添加表视图委托方法 heightForHeaderInSection,并返回一个较小的值。 3. 在 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 链接
页眉部分应该只有 30pt/px,但显然不是: