有一天突然测试和我说页面布局有问题,但是在我的测试机中并没有复现这个问题。但是在测试那边确实复现了。
经过调研,如果你发现你的tableview 的section header总是有一片空白,那是因为
在iOS15后。UITableView多了一个属性sectionHeaderTopPadding,该值默认为22。
我们只需要把这个值设置为0,就能解决顶部空白的问题。
一共有三种解决方式:
- 对于自己项目中的UITableView有自定义封装的话:
/// iOS 15 UITableView顶部空白解决方案 if (@available(iOS 15.0, *)) { self.sectionHeaderTopPadding = 0.0; } else { // Fallback on earlier versions }
- 全局设置
/// iOS 15 UITableView顶部空白解决方案 if (@available(iOS 15.0, *)) { UITableView.appearance.sectionHeaderTopPadding = 0.0; } else { // Fallback on earlier versions }
- 设置单独的页面
if (@available(iOS 15.0, *)) { tableView.sectionHeaderTopPadding = 0.0; } else { // Fallback on earlier versions }