我有一个UIView
里面有3个UIView
,我需要每个UIView
根据其内容定义一个高度,同时父视图应该改变它大小取决于其子女。但我遇到了这个问题:
我需要第二列高度的第一个UIView
始终坚持其内容并将剩余空间留在列的末尾。换句话说,我想要的是第二列的第一个UIView
缩小。
这是我的IB,greater than or equal
约束没有按预期工作(我强调了相关约束):
我尝试过改变优先级,但没有任何工作,希望你能帮助我,谢谢。
编辑:我忘了展示每个UIView
内部的内容。图像可能存在或不存在,如果不是我将其删除并将UIView
的高度责任“传递”到标签上,只需:
答案 0 :(得分:1)
在满足所有其他约束的同时,大于或等于约束的总是尽可能小。所以在这种情况下它是正确的......
正确的原因是因为您使用的标签会使其框架超出其内容。
要解决此问题,您需要更改右侧两个标签上的content hugging priority
。
为此,请选择标签并转到Interface Builder属性检查器中的测量部分。
在底部附近,您会看到“内容拥抱优先级”。将vertical
的值更改为1000
(需要a.k.a.)。
这将告诉标签保持其框架尽可能小以适应内容。因此,为了满足这一要求,大于约束必须更高。
答案 1 :(得分:0)
我通过将标签扩展到每个UIView
的底部来实现它,现在UIView
没有理由扩展超过标签的高度。