用于指定视图大小何时依赖于多个子视图的约束

我在UITableView使用自定义单元格。 单元格中有4个视图。 3个UILabel和1个UIImageView (灰色),如下所示。 标签文本是动态的,因此宽度和高度是动态的。

在此处输入图像描述

这里UIImageView宽度取决于2个标签。 所以问题是在标签和UIImageView之间指定约束来决定UIImageView的宽度。

请参阅下文,如果第一个标签的文字很长,会发生什么。

在此处输入图像描述

当宽度取决于多个标签的宽度时,如何指定约束?

更新:我尝试将标签的行数设置为0,将内在大小设置为占位符。 它也不起作用。 下面是它的外观。 我尝试将内部宽度和高度设置为无,但是当我为两个标签执行此操作时出现错误,如果仅为一个标签设置,则不会出错。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

更新:我更改了属性,下面显示了它们现在的状态以及单元格的显示方式。

细胞 :

在此处输入图像描述

第一行标签的约束(粉红色):

在此处输入图像描述

第二行标签的限制(青色):

在此处输入图像描述

经过多方面的实验,我解决了这个问题。 我唯一要做的就是将水平和垂直内容压缩阻力优先级设置为所需的 .ie 1000.我为所有标签做了这个,因为我不希望任何标签修剪它们的内容。

还有一件事太重要了,就是获得正确的细胞高度 。 如果计算自定义单元格高度时甚至出现1pt的错误,则不会按预期显示。

提示:

  1. 如果任何视图的高度大于预期,则可能计算的单元格高度大于实际需要的高度。
  2. 如果任何视图垂直缩小或不显示整个内容,则可能计算的单元格高度小于实际需要的高度。

Yoy可以通过添加/删除您为单元格计算的高度(变量)的常量值来测试高度是否错误。