16

我正在创建UIImageView使用界面生成器。它的帧大小是 (320,67)。我想在 imageView 上显示图像。我正在从网络上获取图像。问题是从网络获取的图像被拉伸以显示在图像视图上......这是我的代码

NSData *imageData=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.isco.com/webproductimages/appBnr/bnr1.jpg"]];
imageView.image = [UIImage imageWithData:imageData];

谁能告诉我如何显示适合在 imageView 上显示的图像????

4

4 回答 4

41

要么使用

imageView.contentMode = UIViewContentModeScaleAspectFill;

或者

imageView.contentMode = UIViewContentModeScaleAspectFit;

第一个将填充框架,可能会切断图像的一部分。第二个将显示整个图像,可能会使框架的某些区域保持打开状态。

于 2012-09-15T09:38:36.417 回答
7

对于斯威夫特:

imageView.contentMode = UIViewContentMode.ScaleAspectFit

对于 Objective-C :

 imageView.contentMode = UIViewContentModeScaleAspectFit

ScaleAspectFit 选项用于通过保持纵横比来缩放内容以适应视图的大小。视图边界的任何剩余区域都是透明的。

截屏

有关详细信息,请参阅Apple 文档

于 2016-08-24T06:05:24.697 回答
4

在根据图像的纵横比缩放图像后,我最终调整了图像的大小。

let widthRatio = ImageView.bounds.size.width / (captureImageView.image?.size.width)!
let heightRatio = ImageView.bounds.size.height / (captureImageView.image?.size.height)!
let scale = min(widthRatio, heightRatio)
let imageWidth = scale * (ImageView.image?.size.width)!
let imageHeight = scale * (ImageView.image?.size.height)!
ImageView.frame = CGRect(x: 0, y: 0, width: imageWidth, height: imageHeight)
于 2016-11-12T18:59:02.683 回答
0

试试这个代码。

imView.contentMode = UIViewContentModeScaleAspectFit;
于 2014-04-25T11:12:18.953 回答