【问题标题】:Gap between table header and first cell表格标题和第一个单元格之间的间隙
【发布时间】:2017-09-07 02:23:34
【问题描述】:

我有一个包含多个部分的分组表视图,标题和第一个单元格之间有一个我不明白的间隙。这不是部分页眉/页脚,当我使用调试视图层次结构时,看起来单元格框架的 y 原点导致了问题:

(UITableViewWrapperView 突出显示)

红色和蓝色视图是页眉和页脚,我对它们进行了着色,以便排除它们的问题。

如果我得到第一个单元格的打印输出,则框架具有以下属性:frame = (0 35; 320 86)

所以看起来 35 的 y 坐标导致了单元格和标题之间的间隙。如果我在 cellForRowAt 中手动将单元格的 y 坐标设置为 0,它似乎什么也没做。我已经将automaticAdjustScrollViewInsets 设置为false。

我们将不胜感激。

【问题讨论】:

  • @Sahil 该帖子中的大多数答案都提到了automaticAdjustScrollViewInsets,我在原始问题中所说的已经尝试过了。也试过调整tableView contentInset,也不管用。
  • 还要检查 Interface Builder 中的 Layout Margins,如果它们设置为 Default,您可能想尝试将它们更改为 Explicit 并设置为 0。

标签: ios swift xcode uitableview uikit


【解决方案1】:

我现在也遇到了同样的问题。

我刚刚解决了这个问题。请检查这个。它可能对你有用。

tableView.tableHeaderView = myView

我在标题视图中使用了自动布局和约束。在我将它设置为我的 tableHeaderView 后,我得到的标题视图框架为 (0 35 0 0)。

我使用 systemLayoutSizeFitting.height 获得了标题视图的高度,我知道宽度为 414,并将标题视图框架重置为 (0 0 414 200),然后我再次将标题视图设置为我的 tableHeaderView。

让 height = myView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height //height = 200

myView.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: height)
tableView.tableHeaderView = myView

现在它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多