下载大UIImage缩放到UIImageView

时间:2015-02-25 07:49:33

标签: ios objective-c uiimageview uiimage

我正在下载一个相当大的图像并将其存储在UIImage中。然后我将UIImage添加到UIImageView进行显示,但是UIImage太大了,因此,它只显示图像的一部分(它的左上角)。我希望它显示整个UIImage,缩小图像以适应UIImageView。

我已经看了很多不同的答案,但我无法让他们中的任何一个工作。我已经将UIImageView的缩放模式设置为Aspect Fill,fit和你的名字(也尝试过剪辑子视图),但没有任何工作。

以下是代码:

UIImage *trackImg = [UIImage imageWithContentsOfFile:trackImagePath];
_backgroundImage.image = trackImg;

代码很简单,但它只是下载一个UIImage,并将其设置为UIImageview的图像。 UIImageView在interface-builder中配置。

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以使用scaleToSize方法调整图像大小:

-(UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    // Here pass new size you need
    [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

传递你的UIImage,它应该调整大小。将方法称为:

[self imageWithImage:[UIImage imageNamed:@"yourImage.png"] scaledToSize:CGSizeMake(25,45)];

答案 1 :(得分:0)

错误的大小与imageView相同(感谢Huy Nghia)。我将约束设置错误,导致imageView的大小与我预期的大小不同,因为我希望它能够填满整个屏幕,所以我无法轻易检测到它。

如果其他人遇到困难,请尝试确保您的约束是正确的。