如何根据ios中的图像大小保留图像视图大小?

时间:2013-03-27 08:43:59

标签: iphone uiimageview

嗨,在我的IPad应用程序中,我有一个图像视图列表,数据表示我从服务器获取的图像视图的图像。我可以在没有任何问题的情况下加载所有图像。但在这里我观察到一个异常现象,即在图像视图中很少有图像在分辨率方面看起来很好,而且很少有图像在图像视图中看起来很紧张。根据我的知识,我觉得这是因为图像大小超过图像视图大小所以它发生了。但我从服务器获得的数据,所以我无法控制大小。所以任何人都可以展示如何解决这个问题。意味着我不想在图像视图中拉伸图像。请帮帮我。

2 个答案:

答案 0 :(得分:1)

正如spynet所提到的,请尝试UIViewContentModeScaleAspectFit

或添加此方法以将图片大小调整为您想要的大小

- (UIImage *)scaleAndRotateImage:(UIImage *)imagerotate  { 

        CGImageRef imgRef = imagerotate.CGImage;

    CGFloat width = CGImageGetWidth(imgRef);
    CGFloat height = CGImageGetHeight(imgRef);

    CGAffineTransform transform = CGAffineTransformIdentity;
    CGRect bounds = CGRectMake(0, 0, width, height);

    CGFloat boundHeight;

    boundHeight = bounds.size.height;  
    bounds.size.height = bounds.size.width; 
    bounds.size.width = boundHeight;
    transform = CGAffineTransformMakeScale(-1.0, 1.0);
    transform = CGAffineTransformRotate(transform, M_PI / 2.0); //use angle/360 *MPI

    UIGraphicsBeginImageContext(bounds.size);   
    CGContextRef context = UIGraphicsGetCurrentContext();   
    CGContextConcatCTM(context, transform); 
    CGContextDrawImage(context, CGRectMake(0, 0, width, height), imgRef);
    UIImage *imageCopy = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
// UIImageWriteToSavedPhotosAlbum(imageCopy, nil, nil, nil);
return imageCopy;   

}

并添加此项以调用方法

UIImage *imgResized=[self scaleAndRotateImage:imageReceived];

答案 1 :(得分:0)

试试这个我希望这会有所帮助

yourImageView.contentMode=UIViewContentModeScaleAspectFit;