我正在使用动态高度的自定义单元格填充UITableView。我正在使用here所述的方法。
为简单起见,我的单元格包含2个UILabel,如下所示。
对于UITableView中的所有单元格,紫色UILabel将保持相同的高度。在这种情况下,紫色UILabel比绿色UILabel高。我希望紫色UILabel底部和contentView底部之间的约束为8。
但是,还有第二种情况可能如下所示。
在这种情况下,紫色UILabel仍然与第一种情况相同(即使它看起来更小,但由于整体单元高度相对较大,看起来较小),但绿色UILabel要大得多。在这种情况下,我希望绿色UILabel的底部和contentView的底部之间的约束为8。
现在我的困境是我可以设置其中一个(我正在使用故事板)。但我想不出一种方法可以同时实现两者。我的猜测是你需要在运行时以编程方式调整约束,具体取决于绿色UILabel的大小。
有什么想法吗?
我在Swift中使用XCode 6.1.1。
谢谢。
答案 0 :(得分:1)
如果紫色标签的高度始终相同,那么您应该只设置元素的height
约束,而不是将其bottom
约束设置为superview
为8。
对于绿色元素,也许您可以选择该元素和contentview
,并将它们设置为从故事板窗口底部的“添加新约束”窗格中具有equal heights
。然后,选择该约束并在属性检查器中将其乘数值编辑为小于1的某个值。这将使元素的高度始终为父视图高度的某个百分比。你可以调整它,直到它从你下面的视图中接近所需的8px。