有一天突然测验和我说页面布局有问题,但是在我的测验机中并没有复现这个问题。但是在测验那边确实复现了。

经过调研,如果你发现你的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
}