将任何图像缩放以适应UIImageView

7

我有些困惑,如何让 iPhone 相机拍摄的图片适应任何给定大小的 UIImageView。显然,每个 ImageView 的比例都不同,因此图像不会完美“适合”。但是假设我有一个大小为 200pt x 400pt 的 UIImageView,最好的方法是将 UIImage 调整到这个 UIImageView 吗?

我认为我想做以下事情:

[imageView setContentMode:UIViewContentModeScaleAspectFill];

这样做似乎能够起作用,但它似乎会增加我的UIImageView的大小,而我不想要这个...

2
为您的UIImageView设置clipToBounds(或从storyboard中选择Clip Subviews)为YES。 - arturdev
为什么我收到了一个踩的评价... - Apollo
2个回答

8
使用setContentMode:UIViewContentModeScaleAspectFit(而不是FillFill意味着一个维度被允许过大,图片视图将会溢出,如果图片视图的clipsToBounds未设置,则您将能够看到这种溢出)。
另外,请注意,当使用自动布局时设置现有UIImageView的image可能会导致图像视图的大小发生更改(因为图像的大小确定了图像视图的内在大小)。如果您不想要这个结果,请添加约束以保持高度和宽度的某些固定值(例如显式高度和宽度约束)。

5

实际上,如果你像arturdev建议的那样启用裁剪,UIViewContentModeScaleAspectFill也会起作用。将clipToBounds设置为YES(或在storyboard中启用“剪辑子视图”)。 这将使您的图像拉伸到整个视图上,并裁剪超出部分。 在某些情况下,这比使用UIViewContentModeScaleAspectFit更受欢迎;后者会留下空白区域,如果图像不完全符合视图矩形。 enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接