缩放任何图像以适合UIImageView

时间:2014-07-18 20:23:11

标签: ios objective-c uiimageview aspect-ratio

我有点困惑但是如何通过iPhone相机拍摄的照片适合任何给定尺寸的UIImageView。显然,每个图像视图的比例会有所不同,因此图像不会完全“适合”。但是,假设我有一个尺寸为200pt x 400 pt的UIImageView。将UIImageUIImageView相匹配的最佳方式是什么?

我想我想做以下事情:

[imageView setContentMode:UIViewContentModeScaleAspectFill];

这种作品,但它似乎增加了我的UIImageView的大小,但我不想要这个......

enter image description here

2 个答案:

答案 0 :(得分:5)

使用setContentMode:UIViewContentModeScaleAspectFit(不是Fill; Fill表示允许一个维度对于图片视图来说太大,如果有的话,您将能够看到多余的溢出图片视图的clipsToBounds未设置。)

另请注意,在使用自动布局时设置现有UIImageView的image会导致图像视图的大小发生变化(因为图像的大小决定了图像视图的固有大小) 。如果您不想这样做,请添加约束以将高度和宽度保持在某个恒定值(例如显式高度和宽度约束)。

答案 1 :(得分:2)

实际上,如果你按照arturdev建议启用剪辑,UIViewContentModeScaleAspectFill也会起作用。将clipToBounds设置为YES(或在storyboard中启用“Clip Subviews”)。 这将导致您的图像在整个视图上伸展,并且多余部分被剪切掉。 在某些情况下,这是优于UIViewContentModeScaleAspectFit的行为;如果图像不完全适合视图矩形,后者将留下空白空间。 enter image description here