具有多个动态高度的表视图上的Xcode自动布局垂直约束

时间:2017-06-22 00:41:37

标签: ios xcode uitableview autolayout constraints

我正在尝试创建一个包含3个子视图的UITableViewCell - 一个按钮和两个标签。表格视图单元格应如下所示:

Button --Label 1-----------
       --Label 1 continued--

  --Label 2-----------------
  --Label 2 continued ------

目前,我有按钮1,其前导,顶部,宽度和高度限制将其固定在左上角。标签1具有从Button,顶部,左侧和底部约束到内容视图的前导约束。标签1的行数设置为0并且可以动态扩展,到目前为止这是有效的。

我无法弄清楚如何为Label 2设置约束,使其始终低于Label 1并且还可以扩展。

我已经尝试将标签2的顶部约束设置到标签1的底部,所有其他边都固定到内容视图,但这给出了高度和垂直位置不明确的错误。我需要为Label 2添加哪些约束?

2 个答案:

答案 0 :(得分:1)

您应该在尺寸检查器上检查内容拥抱优先级和内容压缩阻力优先级。这应该消除歧义。发生这种情况是因为在缺少空间的情况下,自动布局不知道哪个标签应该增长或缩小。

如果情况并非如此,并且您希望将它们保持相同的大小,则从一个标签到另一个标签的高度约束相同。

答案 1 :(得分:0)

虽然我还不确定它是如何运作的,但我还是设法让它发挥作用。这就是我所做的:

为内容视图提供标签1顶部,前导和尾随约束。

为内容视图提供标签2底部,前导和尾随约束。

为标签1的底部提供标签2(Label2.top = Label1.bottom + 3)

为内容视图提供了一个底部约束,其关系大于(bottomMargin> = Label1.bottom)

这允许两个标签扩展,并且还可以使用UITableViewAutomaticDimension自动调整UITableViewCells的大小。