如何使用自动布局使视图的高度与最大标签的高度相同?

How can I use autolayout to get a view's height to be the same as the height of the largest label?

我在 UIView 中有两个相邻的标签,我希望 UIView 采用最高 UILabel 的高度。如果我将它们都固定在顶部和底部,我就过度约束了整个事情。优先级似乎也不适合我,因为我不确定 UILabel 应该 "win"。有什么优雅的方法可以解决这个问题吗?

使用不等式约束。如果它们在顶部对齐,您只需将容器的顶部设置为与标签顶部相等即可。然后,您将 bottom 设置为大于 label1 的 bottom,并在另一个约束条件下设置为大于 label2 的 bottom。这留下了歧义,因为它可以是 any 高度,它大于两者。所以,你可以设置一个相当低的优先级约束,使视图高度为0,从而解决歧义。

如果顶部没有对齐,那么你也可以在那里使用不等式。容器顶部 <= label1 顶部和容器顶部 <= label2 顶部。低优先级0高度约束会导致容器紧贴两个标签。