2017-06-22 43 views
0

我想创建一个包含3个子视图 - 一个按钮和两个标签的UITableViewCell。该表视图单元格应该是这样的:Xcode自动布局在多个动态高度的表视图上的垂直约束

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

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

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

我无法弄清楚如何为标签2设置约束,以便它总是低于标签1并且还可以展开。

我试过在标签2的底部设置一个顶部约束到标签1的底部,所有其他边固定到内容视图,但是这给出了高度和垂直位置模糊的错误。我需要为Label 2添加什么约束条件?

回答

0

虽然我仍然不确定它是如何工作的,但我已经设法使它工作。这就是我所做的:

给标签1一个顶部,引导和尾部限制到内容视图。

给予标签2对内容视图的底部,前导和尾随约束。

都给标签2的顶部约束到标签1的底部(Label2.top = Label1.bottom + 3)

都给标签1底部约束到内容视图具有大于一个关系(bottomMargin> = Label1.bottom)

这允许两个标签展开,也可以使用UITableViewAutomaticDimension自动调整UITableViewCells的大小。

1

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

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