UITableView顶部突然出现一块空白问题

2,247 阅读1分钟

有一天突然测试和我说页面布局有问题,但是在我的测试机中并没有复现这个问题。但是在测试那边确实复现了。
经过调研,如果你发现你的tableview 的section header总是有一片空白,那是因为
在iOS15后。UITableView多了一个属性sectionHeaderTopPadding,该值默认为22。
我们只需要把这个值设置为0,就能解决顶部空白的问题。

一共有三种解决方式:

  1. 对于自己项目中的UITableView有自定义封装的话:
/// iOS 15 UITableView顶部空白解决方案
if (@available(iOS 15.0, *)) {
    self.sectionHeaderTopPadding = 0.0;
} else {
    // Fallback on earlier versions
}
  1. 全局设置
/// iOS 15 UITableView顶部空白解决方案
if (@available(iOS 15.0, *)) {
    UITableView.appearance.sectionHeaderTopPadding = 0.0;
} else {
    // Fallback on earlier versions
}
  1. 设置单独的页面
if (@available(iOS 15.0, *)) {
    tableView.sectionHeaderTopPadding = 0.0;
} else {
    // Fallback on earlier versions
}