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

How to set autolayout constraint so that the height of an UIImageView is equal to the height of the superview?

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

UILabel 已将 lines 设置为 0,以便 UILabel 的高度动态变化

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

我已将 UIImageView 的宽度设置为常量 100。

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

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

谁能指出我如何向 UIImageView 添加约束,使其高度等于其父视图,但父视图的高度不依赖于 UIImageView

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

的高度

我相信你还没有将高度限制添加到父视图。为超级视图设置高度约束,然后在 UIImageView 和整个视图上添加 "Equal Heights" 约束。

看来您需要减少图像视图中的 vertical content compression resistance

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

事实上你的 UIImageView 的默认压缩阻力是 750,而 root UIView 的内容拥抱是 250。这意味着 AutoLayout 引擎可以正确布局所有内容。您可以将垂直压缩阻力更改为低于 250 (UILayoutPriority.defaultLow - 1) 的值以实现所需的布局。