我应该对这个图像视图应用啥约束?

Posted

技术标签:

【中文标题】我应该对这个图像视图应用啥约束?【英文标题】:What constraints I should apply to this image view?我应该对这个图像视图应用什么约束? 【发布时间】:2017-05-08 19:24:51 【问题描述】:

我来自设计。对我来说,使用自动布局就像在没有任何先前知识的情况下试图理解克林贡语。自动布局违背了所有良好理解的逻辑。

我有这种情况:

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

“图像编辑”逻辑说我必须应用以下约束:

    1:1 纵横比 领先/落后 10 个点。 以 Y 为中心查看

这适用于纵向,但当我将设备旋转到横向时,图像将扩展以遵守 10 点的前导/后缀,并且将被剪裁顶部/底部。

然后我想,我可以为视图添加一个顶部/底部约束>= 10 pt...不。图像被水平拉伸,不遵守 1:1 的纵横比。

然后我将前导/尾随更改为>=10,现在图像有这样的:

    1:1 纵横比 领先/落后 >=10 点。 >=10 个点的顶部/底部。

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

对我来说,Y 是根据前导/尾随/顶部/底部约束完美定义的,我无法定义高度,因为它运行的每个设备都有一个高度。

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

【问题讨论】:

【参考方案1】:

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

将Leading、Trailing、Top 和Bottom 约束全部设置为10

将 ImageView 的 Content Mode 设置为 Aspect Fit

【讨论】:

太棒了!这个解决方案违背了常识、设计、逻辑和理智的所有规则。只有苹果可以提供。再一次,设计的精神围绕着它的坟墓!哇!谢谢!

以上是关于我应该对这个图像视图应用啥约束?的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 约束问题

如何使用 ios 中的约束使视图位置动态化?

XCode/Swift:如何管理两个重叠图像视图的约束

UITableView 不遵循约束

如何使用屏障将视图约束到父级顶部

这个控制台警告对我的约束意味着啥?