我正在使用界面生成器创建UIImageView
。其框架尺寸为(320,67)。
我想在imageView上显示图像。我从网上获取图像。问题是从web获取的图像被拉伸到imageview上显示...
这是我的代码
NSData *imageData=[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.isco.com/webproductimages/appBnr/bnr1.jpg"]];
imageView.image = [UIImage imageWithData:imageData];
任何人都可以告诉我如何显示适合在imageView上显示的图像????
答案 0 :(得分:35)
使用
imageView.contentMode = UIViewContentModeScaleAspectFill;
或
imageView.contentMode = UIViewContentModeScaleAspectFit;
第一个将填充框架,可能会切掉部分图像。第二个将显示整个图像,可能会使框架的区域打开。
答案 1 :(得分:6)
对于Swift:
imageView.contentMode = UIViewContentMode.ScaleAspectFit
对于Objective-C:
imageView.contentMode = UIViewContentModeScaleAspectFit
ScaleAspectFit选项用于通过保持纵横比来缩放内容以适合视图的大小。视图边界的任何剩余区域都是透明的。
有关详细信息,请参阅Apple docs。
答案 2 :(得分:2)
根据图像的纵横比缩放图像后,我最终调整了图像的大小。
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)
答案 3 :(得分:0)
试试这段代码。
imView.contentMode = UIViewContentModeScaleAspectFit;