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