如何在保持其宽高比的同时调整AsyncImageView(UIImageView的子类)的大小

时间:2013-01-22 12:08:06

标签: iphone ios ipad uiimageview uiimage

我在此链接中使用了以下代码: How to resize an UIImage while maintaining its Aspect Ratio 通过维护其宽高比将图像大小调整为固定大小(100 * 100)。我在我的应用程序中使用 AsyncImageView 来使用url加载图像。您可以从以下链接获取 AsyncImageView 代码: nicklockwood / AsyncImageView

但这些图像看起来仍然像挤压一样。我该如何解决这个问题?

- (UIImage*) scaleImage:(UIImage*)image toSize:(CGSize)newSize {
    CGSize scaledSize = newSize;
    float scaleFactor = 1.0;
    if( image.size.width > image.size.height ) {
        scaleFactor = image.size.width / image.size.height;
        scaledSize.width = newSize.width;
        scaledSize.height = newSize.height / scaleFactor;
    }
    else {
        scaleFactor = image.size.height / image.size.width;
        scaledSize.height = newSize.height;
        scaledSize.width = newSize.width / scaleFactor;
    }

    UIGraphicsBeginImageContextWithOptions( scaledSize, NO, 0.0 );
    CGRect scaledImageRect = CGRectMake( 0.0, 0.0, scaledSize.width, scaledSize.height );
    [image drawInRect:scaledImageRect];
    UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();    

    return scaledImage;
}

这是在我的应用程序中加载图像的方式: enter image description here

1 个答案:

答案 0 :(得分:0)

为什么不使用SDWebImage来获取远程图像? 这是链接:https://github.com/rs/SDWebImage