大于或等于约束不能正常工作

时间:2017-07-20 12:34:22

标签: ios autolayout

我有一个UIView里面有3个UIView,我需要每个UIView根据其内容定义一个高度,同时父视图应该改变它大小取决于其子女。但我遇到了这个问题:

Not working properly

我需要第二列高度的第一个UIView始终坚持其内容并将剩余空间留在列的末尾。换句话说,我想要的是第二列的第一个UIView缩小。

这是我的IB,greater than or equal约束没有按预期工作(我强调了相关约束):

Interface Builder

我尝试过改变优先级,但没有任何工作,希望你能帮助我,谢谢。

编辑:我忘了展示每个UIView内部的内容。图像可能存在或不存在,如果不是我将其删除并将UIView的高度责任“传递”到标签上,只需:

Inside each UIView

2 个答案:

答案 0 :(得分:1)

在满足所有其他约束的同时,大于或等于约束的总是尽可能小。所以在这种情况下它是正确的......

正确的原因是因为您使用的标签会使其框架超出其内容。

要解决此问题,您需要更改右侧两个标签上的content hugging priority

为此,请选择标签并转到Interface Builder属性检查器中的测量部分。

在底部附近,您会看到“内容拥抱优先级”。将vertical的值更改为1000(需要a.k.a.)。

这将告诉标签保持其框架尽可能小以适应内容。因此,为了满足这一要求,大于约束必须更高。

答案 1 :(得分:0)

我通过将标签扩展到每个UIView的底部来实现它,现在UIView没有理由扩展超过标签的高度。