无论最终图像大小如何,如何为 UIImageView 设置最大高度

How to set a max height for UIImageView regardless of final Image size

我有一个 UIImageView 模式为 "Aspect Fill" 的问题。我已经为我的 UIImageView 设置了尺寸,但我注意到在运行时,UIImageView 的高度往往会根据填充后呈现的最终图像而变化。

有没有办法为 UIImageView 设置最大高度,而不管填充它的内容的高度如何。基本上我想要的是类似于 CSS 中的那种功能,我可以执行 "overflow: hidden" 类型的命令,因此任何超过 UIImageView 大小的东西都是 hidden/ignored。

iOS有没有办法做到这一点?

使用"Scale to Fill",它会根据UIImageView的大小缩放图片。

"Aspect Fill"不会缩小UIImageView,只会打印其中的一部分。

是的,这里有两个可能的原因:

a) UIImageView 可能会因为应用了自动布局约束而增长:如果您正在使用自动布局,只需为 UIImageView 设置一个具有最大(或固定)高度的约束。

b) UIImageView 可能根本没有增长,但您看到图像的 "excess" 因为视图没有裁剪它。只需在 Interface Builder 或您的代码中将 clipsToBounds 设置为 true。

我有这个问题。我有 四个视图最上面的一个有一个图像,其他是三个按钮。我将 三个按钮 放在一个堆栈视图中。并将 image 放在另一个 stack view 中。我所要做的就是将 宽高比 设置为我想要的,魔法就完成了。而且,使用 size-类variations 也很容易适应小屏幕或纵向和横向模式。