我应该对此图像视图应用哪些约束?

What constraints I should apply to this image view?

我是设计出身。使用 Auto layout 对我来说就像在没有任何以前的语言知识的情况下试图理解 Klingon。自动布局违背了良好理解的所有逻辑。

我遇到这种情况:

要显示纵向和横向的 400x400 像素的图像视图。此图片必须以 1:1 的纵横比显示,并在设备横向时自行调整为更小。

"image editing" 逻辑表明我必须应用以下约束:

  1. 1:1纵横比
  2. leading/trailing 共 10 分。
  3. 居中 Y 以查看

这适用于纵向,但当我将设备旋转到横向时,图像将扩展以符合 10 点的 leading/trailing 并且将被剪裁 top/bottom。

然后我想,我可以向视图 >= 10 pt 添加一个 top/bottom 约束...不。图像被水平拉伸并且不符合 1:1.

的纵横比

然后我将 leading/trailing 更改为 >=10,现在图像是这样的:

  1. 1:1纵横比
  2. leading/trailing >=10 分。
  3. top/bottom >=10 分。

这是可行的,但 Xcode 抱怨图像视图需要对 Y 位置或高度进行约束!

对我来说,Y 是根据 leading/trailing/top/bottom 约束完美定义的,我无法定义高度,因为运行的每个设备都有一个高度。

看在上帝的份上。如何解决?

有几种方法可以解决这个问题,但最简单的可能是:

将前导、尾随、顶部和底部约束全部设置为 10

将 ImageView 的 Content Mode 设置为 Aspect Fit