UITableViewCell动态约束

时间:2015-02-03 02:39:54

标签: ios uitableview swift

我正在使用动态高度的自定义单元格填充UITableView。我正在使用here所述的方法。

为简单起见,我的单元格包含2个UILabel,如下所示。 enter image description here

对于UITableView中的所有单元格,紫色UILabel将保持相同的高度。在这种情况下,紫色UILabel比绿色UILabel高。我希望紫色UILabel底部和contentView底部之间的约束为8。

但是,还有第二种情况可能如下所示。 enter image description here

在这种情况下,紫色UILabel仍然与第一种情况相同(即使它看起来更小,但由于整体单元高度相对较大,看起来较小),但绿色UILabel要大得多。在这种情况下,我希望绿色UILabel的底部和contentView的底部之间的约束为8。

现在我的困境是我可以设置其中一个(我正在使用故事板)。但我想不出一种方法可以同时实现两者。我的猜测是你需要在运行时以编程方式调整约束,具体取决于绿色UILabel的大小。

有什么想法吗?

我在Swift中使用XCode 6.1.1。

谢谢。

1 个答案:

答案 0 :(得分:1)

如果紫色标签的高度始终相同,那么您应该只设置元素的height约束,而不是将其bottom约束设置为superview为8。

对于绿色元素,也许您可​​以选择该元素和contentview,并将它们设置为从故事板窗口底部的“添加新约束”窗格中具有equal heights。然后,选择该约束并在属性检查器中将其乘数值编辑为小于1的某个值。这将使元素的高度始终为父视图高度的某个百分比。你可以调整它,直到它从你下面的视图中接近所需的8px。