0

问题:当标签并排且每个标签包含不同数量的行时,如何使用 UITableViewAutomaticDimension 在 UITableViewCell 中使用约束?

我有一个表格,其中包含并排包含标签的单元格:

带有水平标签的表格单元格

如果一侧的标签比另一侧的相应标签有更多行,我很难让单元格正确调整大小。其中一个标签总是被切断。如果两个标签的行数相同,则单元格会完美调整大小并且可以看到所有文本。

我已经尝试了许多约束调整,但没有任何东西可以按预期完美运行。

我尝试为高度添加隐藏标签...但它不适用于具有 4 个标签的单元格我尝试将标签放置在视图中,但仍然需要计算视图的高度。

目前,约束设置正常:顶部、底部、左侧、右侧、标签设置为 0 行等,并且当两个标签具有相同的文本或相同的行数时效果很好。

有什么办法可以在约束的情况下做到这一点?或者我是否需要在索引路径处恢复到行的旧高度?=(

4

2 回答 2

0

有一种方法可以仅使用约束来实现您想要做的事情。诀窍是将两个较低标签和底部之间的约束关系设置为Greater Than or Equal而不是equal.

这是我设置约束的方式:

在此处输入图像描述

结果如下:

在此处输入图像描述

或者您可以将标签顶部和底部之间的约束设置为Greater Than or Equal并将底部约束保留在equal

在此处输入图像描述

要得到这个结果:

在此处输入图像描述

于 2016-03-23T20:26:59.670 回答
0

我找到了一个解决方案,我不必恢复使用 tableView:heightForRowAtIndexPath。

我在单元格中添加了一个标签,文本颜色设置为 clearColor,并将其命名为“heightLabel”。我向 heightLabel 添加了约束,因此单元格将根据 heightLabel 的约束调整大小。

然后无论左标签还是右标签中的文本最多,我将该标签的文本放在 heightLabel 中。

单元格仍然没有调整大小,在返回 tableView:cellForRowAtIndexPath 中的单元格之前,我必须在单元格上调用“layoutIfNeeded”。

heightLabel 约束现在用于调整单元格的大小,并且 UITableViewAutomaticDimensions 工作正常。

这可能不是最好的解决方案,但效果很好。如果有更合适的方法可以做到这一点,我愿意接受建议。

于 2016-03-23T19:52:04.487 回答