iOS 15:删除 UITableView 中单元格之前的空白区域

Amj*_*mja 23 uitableview uikit ios swift

我正在使用UITableView多部分列表。我看到的问题是每个部分的单元格上方有一个空格,即使我设置tableView(_:heightForHeaderInSection:)为 0。即使只有一个部分并且我设置tableView(_:viewForHeaderInSection:)为,也会发生这种情况nil

我已经尝试了 StackOverflow 上与插入覆盖/边缘扩展相关的所有其他答案,但没有一个有效。

例子:

iOS 表格视图的屏幕截图。 每个节标题上方都有一个间隙,其颜色与表格背景颜色相同。

Amj*_*mja 48

检查您是否仅在 iOS 15 及更高版本上看到此问题。如果是这样,这可能是由新引入的UITableView.sectionHeaderTopPadding属性引起的。您需要将此值设置为,0以便删除节标题之前的间距:

let tableView = UITableView()
tableView.sectionHeaderTopPadding = 0

// Etc.
Run Code Online (Sandbox Code Playgroud)

此属性仅适用于 >= iOS 15,因此如果为早期版本构建,则需要进行 API 检查。

如果您使用的不是 iOS 15,此问题包含此问题的大部分答案。


Şaf*_*zer 9

另一种方法是设置sectionHeaderTopPadding在 UITableViewUIAppearance代理中找到的值,这确保该值将应用于应用程序中 UITableView 的每个实例:

if #available(iOS 15.0, *) {
    UITableView.appearance().sectionHeaderTopPadding = CGFloat(0)
}
Run Code Online (Sandbox Code Playgroud)