1

嗨,在我的 iPad 应用程序中,我有一个图像视图列表,数据表示我从服务器获取的那些图像视图的图像。我能够毫无问题地在受尊重的图像视图中加载所有图像。但在这里我观察到一个异常现象,即很少有图像在 imageviews 中的分辨率看起来不错,而很少有图像在 imageviews 中看起来被拉伸。据我所知,我觉得这是发生的,因为图像大小大于图像视图大小,所以它发生了。但是我从服务器获取的数据,所以我无法控制大小。因此,任何人都可以展示如何解决此问题的任何解决方案。意味着我不想在图像视图中拉伸图像。请帮我。

4

2 回答 2

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];
于 2013-03-27T08:57:15.997 回答
0

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

yourImageView.contentMode=UIViewContentModeScaleAspectFit;
于 2013-03-27T12:13:12.973 回答