UITableViewCell 动态约束
UITableViewCell dynamic constraints
我正在用动态高度的自定义单元格填充 UITableView。我正在使用 here.
中描述的方法
为了简单起见,假设我的单元格包含 2 个 UILabel,如下所示。
对于 UITableView 中的所有单元格,紫色的 UILabel 将保持相同的高度。在本例中,紫色的 UILabel 比绿色的 UILabel 高。我希望紫色 UILabel 底部和 contentView 底部之间的约束为 8。
但是,还有第二种可能的情况,如下所示。
在这种情况下,紫色的UILabel还是和第一种情况一样大(虽然看起来小了,但是由于整个cell的高度比较大,相对来说,看起来小了),但是绿色的UILabel就大了更大。在这种情况下,我希望绿色 UILabel 底部和 contentView 底部之间的约束为 8。
现在我的困境是我可以设置一个或另一个(我正在使用故事板)。但我想不出同时使两者成为可能的方法。我的猜测是您需要在运行时根据绿色 UILabel 的大小以编程方式调整约束。
有什么想法吗?
我在 Swift 中使用 XCode 6.1.1。
谢谢。
如果紫色标签始终保持相同高度,那么您应该只设置元素的 height
约束,而不是将其 bottom
约束设置为 superview
为 8。
对于绿色元素,也许您可以 select 该元素和 contentview
并将它们设置为具有来自 "add new constraint" 窗格底部的 equal heights
故事板 window。然后,select 该约束并在属性检查器中将其乘数编辑为某个小于 1 的值。这将使元素的高度始终是父视图高度的某个百分比。你可以调整它直到它让你从它下面的视图中接近所需的 8px。
我正在用动态高度的自定义单元格填充 UITableView。我正在使用 here.
中描述的方法为了简单起见,假设我的单元格包含 2 个 UILabel,如下所示。
对于 UITableView 中的所有单元格,紫色的 UILabel 将保持相同的高度。在本例中,紫色的 UILabel 比绿色的 UILabel 高。我希望紫色 UILabel 底部和 contentView 底部之间的约束为 8。
但是,还有第二种可能的情况,如下所示。
在这种情况下,紫色的UILabel还是和第一种情况一样大(虽然看起来小了,但是由于整个cell的高度比较大,相对来说,看起来小了),但是绿色的UILabel就大了更大。在这种情况下,我希望绿色 UILabel 底部和 contentView 底部之间的约束为 8。
现在我的困境是我可以设置一个或另一个(我正在使用故事板)。但我想不出同时使两者成为可能的方法。我的猜测是您需要在运行时根据绿色 UILabel 的大小以编程方式调整约束。
有什么想法吗?
我在 Swift 中使用 XCode 6.1.1。
谢谢。
如果紫色标签始终保持相同高度,那么您应该只设置元素的 height
约束,而不是将其 bottom
约束设置为 superview
为 8。
对于绿色元素,也许您可以 select 该元素和 contentview
并将它们设置为具有来自 "add new constraint" 窗格底部的 equal heights
故事板 window。然后,select 该约束并在属性检查器中将其乘数编辑为某个小于 1 的值。这将使元素的高度始终是父视图高度的某个百分比。你可以调整它直到它让你从它下面的视图中接近所需的 8px。