【问题标题】:Setting tableViewCell height with greater than or equal to constraints设置大于或等于约束的 tableViewCell 高度
【发布时间】:2018-07-04 08:38:23
【问题描述】:

我有一个UITableViewCell,其高度至少需要 106。如果单元格内的标签超过高度 106,我需要将 contentView 高度设置为增加。

这就是我所做的。

  • 设置一个 containerView 以适应所有边缘。
  • 设置containerView的高度锚点> 106
  • 将标签设置为顶部和前导。

我还需要做什么才能使单元格达到它的高度?

【问题讨论】:

  • 再想一想,如果您使用单元格的自动高度,单元格将采用隐式大小,因此如果您向单元格添加 UIComponents 可以有效地为单元格提供高度,那么显然完美的高度容纳所有 UI 组件将被使用:) 否则你总是可以在 heightForRowAtIndexPath 中计算可能的高度检查它是否小于 106 如果是则返回 106 否则返回你得到的任何值。单元格 contentView 的自动布局约束没有多大意义
  • 你可以使用小于或大于约束等式
  • 不需要运行时间限制,只需设置适当的内容拥抱和抗压缩优先级

标签: ios swift uitableview uitableviewautomaticdimension


【解决方案1】:

如果我没看错,您的表格视图单元格包含一个标签。您希望单元格的最小高度为 106,如果标签中的文本内容增加以至于标签不再适合单元格高度,则单元格的高度应该增加。如果这是问题所在,那么您需要使用自动尺寸,为此您必须做两件事

1) 要使自动尺寸起作用,您必须以这样一种方式设置布局约束,即至少有一个约束连接单元格子视图和 contentView 的顶部,并且至少有一个约束连接单元格子视图和 contentView 的底部.假设单元格内只有一个标签,请给出前导、尾随、顶部和底部约束。您可以在所有边上设置 10 像素的内边距。

2) 将 table view 的estimatedRowHeight 设置为 106。 3)在heightForRowAtindexPath委托方法中,返回UITableViewAutomaticDimension

现在一切就绪。

【讨论】:

    【解决方案2】:

    为标签添加一个约束:高度:大于或等于您所需的高度值。

    【讨论】:

    • 标签需要自己设置高度。
    • 您是自动为单元格设置值还是使用自定义方法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 2013-02-16
    • 2019-05-18
    • 2016-12-22
    • 2020-06-11
    • 2012-08-23
    • 1970-01-01
    相关资源
    最近更新 更多