最佳答案
我试图绘制一些缩略图在一个固定的大小(100x100)使用 UIImageView
。我已经将我的图像视图的帧大小设置为100x100,并将 contentMode
设置为 UIViewContentModeScaleAspectFill
。
我的理解是,这应该导致图像绘制在我设置的大小,图像将填充图像的区域,并剪辑图像的任何部分以外的大小我设置的图像视图。但是,图像仍然绘制大于或小于我为它设置的100x100大小。
如果我将 contentMode
设置为 UIviewContentModeScaleToFill
,那么图像的绘制精确到100x100,但是它被扭曲以适应这些尺寸。知道为什么方面填充没有按预期剪切吗?
这是我的密码:
_photoView = [[UIImageView alloc] initWithImage:photoImage];
_photoView.contentMode = UIViewContentModeScaleAspectFill;
[self addSubview:_photoView];
CGRect photoFrame = _photoView.frame;
photoFrame.size = CGSizeMake(100, 100);
_photoView.frame = photoFrame;
为了更好地说明,这里是我所看到的截图。绿色方块是包含我正在处理的 UIImageView
的 UIView
。我已经将它们的背景颜色设置为绿色,视图的框架设置为100x100。作为测试,UIImageViews
的大小为50x50。正如您所看到的,当使用 ...AspectFill
时,图像的大小不是50x50,并且在某些情况下会偏离我希望它们的位置。使用 ...ScaleToFill
时,它们的大小正确,但图像失真。