【问题标题】:iOS 15: Remove empty space before cells in UITableViewiOS 15:删除 UITableView 中单元格前的空白
【发布时间】:2021-11-18 03:57:58
【问题描述】:
我将UITableView 用于多部分列表。我看到的问题是每个部分的单元格上方有一个空格,即使我将 tableView(_:heightForHeaderInSection:) 设置为 0。即使只有一个部分并且我将 tableView(_:viewForHeaderInSection:) 设置为 nil,也会发生这种情况。
我已经尝试过 StackOverflow 上与插入覆盖/边缘扩展相关的所有其他答案,但都没有奏效。
例子:
【问题讨论】:
标签:
ios
swift
uitableview
uikit
【解决方案1】:
检查您是否仅在 iOS 15 上看到此问题。如果是,这可能是由新引入的 UITableView.sectionHeaderTopPadding 属性引起的。您需要将此值设置为 0 以删除部分标题之前的间距:
let tableView = UITableView()
tableView.sectionHeaderTopPadding = 0
// Etc.
此属性仅在 iOS 15 中可用,因此如果为早期版本构建,您将需要 API 检查。
如果您未使用 iOS 15,this question 可以找到此问题的大部分答案。
【解决方案2】:
另一种方法是设置在 UITableView 的 UIAppearance 代理中找到的 sectionHeaderTopPadding 值,以确保该值将应用于应用程序中的每个 UITableView 实例:
if #available(iOS 15.0, *) {
UITableView.appearance().sectionHeaderTopPadding = CGFloat(0)
}