【问题标题】:Why is contentView height of UITableViewCell always one point smaller than the UITableViewCell?为什么 UITableViewCell 的 contentView 高度总是比 UITableViewCell 小一点?
【发布时间】:2015-05-19 13:45:44
【问题描述】:

我的单元格,在 UITableViewCell 级别,高度为 44 磅。 contentView 显示 43 分,在 IB 中显示为灰色。如何使内容与单元格大小相同?

请注意,我在单独的 xib 文件中设计单元格。

我希望我的单元格彼此之间没有边距。

我还设置了 None 作为表格视图的分隔符样式。 IB 中的行高也设置为 44 点。不使用任何部分。

【问题讨论】:

    标签: ios uitableview


    【解决方案1】:

    如果您使用 storyboards 将 tableView 的 Separator 设置为 None(而不是 Default)会去掉 1pt 分隔符,并且 contentView 的高度变为等于单元格的高度高度(即使它是灰色的)

    注意:此解决方案不适用于 xib 文件(至少不更新 IB,不在运行时检查)。

    【讨论】:

    • 问题不在于分隔符,而是使用单元格的整个区域,仅添加到总是比整个单元格低一点的 contentView 是不可能的。只有 backgroundView 覆盖了整个高度。
    • 您在否决之前尝试过我所说的吗? 仅当 Separator 设置为 Default 时,它会减少 1pt。当Separator 设置为None 时,contentView 的高度等于单元格的高度(您所指的 backgroundView)。
    • 你确定吗?因为单元格如何知道表格视图中的分隔符状态?我还明确表示我已经将分隔符设置为无。除非我错过了什么,否则我认为分隔符和单元格高度无关。
    • 是的,我是。我在发布前检查了它,然后仔细检查了一遍。据我了解,contentView 设置为:cell.height - separator.height 所以如果SeparatorNone,它只会获得单元格的高度。
    • 好吧,也许在运行时你说的是正确的。但是我在单独的 xib 文件中设计我的单元格,所以当时他们应该不知道他们最终会进入什么样的 tableview。好吧,下次遇到这个问题时我会考虑这个。
    【解决方案2】:

    我想通了。我使用全尺寸背景图像作为单元格的背景。一旦我停止在 contentView 中放置单独的 UIImageView:s 作为背景,而是将背景 UIImageView:s 分配给单元格的 backgroundView 属性,然后设置单元格的高度以及 uitableview 中每个单元格的高度(并将 contentView 背景颜色设置为完全透明!),事情开始按我的意愿工作。 contentView 高度仍会小一点,但现在单元格彼此完美对齐。为此,我不需要让 contentView 高度与 UITableViewCell 高度匹配。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-23
      • 2011-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多