如何设置自动布局约束,以使UIImageView的高度等于超级视图的高度?

时间:2018-12-18 08:01:23

标签: ios uiimageview autolayout

我创建了一个UIView,它由3个UILabel和1个UIImageView组成,如下所示-

View

UILabel的{​​{1}}设置为0,以使lines的高度动态变化

我添加了一些约束,以使图像的高度取决于UILabel的高度,如下所示-

enter image description here

我将UILabel的宽度设置为常数100。

我想对UIImageView设置一个约束,以使UIImageView的高度等于整个视图的高度。

我尝试在UIImageView和整个视图上添加“等高”约束。我观察到整个视图的高度取决于UIImageView的高度,而不是UIImageView的高度取决于我想要的整个视图。

有人能指出我如何向UIImageView添加约束,以使其高度等于其父视图,但该父视图的高度不取决于UIImageView吗?

编辑- 下图显示了我面临的问题。将图像设置为UIImageView时,视图的高度会改变。 我希望UIImageView的高度等于视图的高度,但是我不希望视图的高度取决于UIImageView

的高度

enter image description here

3 个答案:

答案 0 :(得分:1)

我相信您尚未将高度限制添加到超级视图。设置超级视图的高度约束,然后在UIImageView和整个视图上添加“等高”约束。

答案 1 :(得分:1)

您似乎需要减少图片视图上的vertical content compression resistance

将其设置为非常低的值,例如100,然后重试。

答案 2 :(得分:0)

实际上,UIImageView的默认抗压缩性是750,而根UIView的内容包含是250。这意味着AutoLayout引擎可以正确地布局所有内容。您可以将垂直压缩阻力更改为小于250(UILayoutPriority.defaultLow - 1)的值,以实现所需的布局。