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



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

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

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

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

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

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

如果不是这种情况,并且您希望使它们的大小保持相同,则从一个标签到另一个标签的相同高度约束就可以了。

我已经设法让它工作,尽管我仍然不确定它是如何工作的。这是我所做的:

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

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

为标签 2 提供标签 1 底部的顶部约束 (Label2.top = 标签 1.bottom + 3(

为标签 1 提供了内容视图的底部约束,其关系大于 (bottomMargin>= Label1.bottom(

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

最新更新