我有点困惑但是如何通过iPhone相机拍摄的照片适合任何给定尺寸的UIImageView。显然,每个图像视图的比例会有所不同,因此图像不会完全“适合”。但是,假设我有一个尺寸为200pt x 400 pt的UIImageView。将UIImage
与UIImageView
相匹配的最佳方式是什么?
我想我想做以下事情:
[imageView setContentMode:UIViewContentModeScaleAspectFill];
这种作品,但它似乎增加了我的UIImageView的大小,但我不想要这个......
答案 0 :(得分:5)
使用setContentMode:UIViewContentModeScaleAspectFit
(不是Fill
; Fill
表示允许一个维度对于图片视图来说太大,如果有的话,您将能够看到多余的溢出图片视图的clipsToBounds
未设置。)
另请注意,在使用自动布局时设置现有UIImageView的image
会导致图像视图的大小发生变化(因为图像的大小决定了图像视图的固有大小) 。如果您不想这样做,请添加约束以将高度和宽度保持在某个恒定值(例如显式高度和宽度约束)。
答案 1 :(得分:2)
实际上,如果你按照arturdev建议启用剪辑,UIViewContentModeScaleAspectFill也会起作用。将clipToBounds设置为YES(或在storyboard中启用“Clip Subviews”)。 这将导致您的图像在整个视图上伸展,并且多余部分被剪切掉。 在某些情况下,这是优于UIViewContentModeScaleAspectFit的行为;如果图像不完全适合视图矩形,后者将留下空白空间。