【问题标题】:sectionHeaderTopPadding doesn't apply on Grouped and InsetGrouped UITableViewsectionHeaderTopPadding 不适用于 Grouped 和 InsetGrouped UITableView
【发布时间】:2021-11-28 12:27:23
【问题描述】:

从 iOS15 开始出现奇怪的顶部差距

经过研究发现

if #available(iOS 15, *) {
    tableView.sectionHeaderTopPadding = 0
}

应该解决问题

但这仅适用于普通样式表 (UITableView.Style.plain),但我的表已分组,看起来此属性对 GROUPED 样式 (UITableView.Style.grouped) 没有影响

这是一个错误吗?如何消除分组表上的间隙?

【问题讨论】:

  • 也许这就是分组表视图现在的样子。查看手机设置应用程序中的主屏幕表;是一样的。如果这就是您在这里谈论的全部内容,我建议您下定决心接受它。
  • 还有人可能认为您的屏幕截图显示了对分组表格样式的错误使用。
  • 不完全是,因为普通样式遗憾地将页脚部分标题附加到底部,顶部部分标题在滚动时......所以为了避免浮动、粘性标题,您只能解析为分组表...
  • 我明白你的意思。您可以使用单列集合视图以避免固定标题。
  • 如果您认为这是不可取的,和/或分组样式应该响应设置顶部填充,请向 Apple 提交错误报告。

标签: swift uitableview ios15 uitableviewsectionheader


【解决方案1】:

你可以试试这个(这对我来说适用于 grouped/insetGrouped)

            if #available(iOS 15.0, *) {
                UITableView.appearance().sectionHeaderTopPadding = 0
                let tableHeaderView = UIView()
                tableHeaderView.translatesAutoresizingMaskIntoConstraints = false
                tableHeaderView.heightAnchor.constraint(equalToConstant: 5).isActive = true
                UITableView.appearance().tableHeaderView = tableHeaderView
            } else {
                // Fallback on earlier versions
            }

【讨论】:

    【解决方案2】:

    根据来自 WWDC2021 的 What's new in UIKit video,顶部填充似乎只添加到了 UITableView 的普通样式中。

    这里是提到它的部分

    我们在 iOS 15 中为标题提供了新外观。对于普通列表,部分标题现在与内容无缝显示,并且只有在您向下滚动时固定到顶部时才会显示可见的背景材料。此外,在每个部分标题上方插入了新的填充,以便使用这种新设计在视觉上分隔各部分。 当列表内容很长时,您应该将此简单样式与索引栏结合使用,以便在联系人应用程序中演示。

    https://developer.apple.com/videos/play/wwdc2021/10059/?time=438

    【讨论】:

    • 好的,但如何摆脱它?
    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 2023-02-23
    • 1970-01-01
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多