2012-09-15 45 views
11

我正在使用界面生成器创建UIImageView。其帧尺寸是(320,67)。 我想在imageView上显示图像。我从网上获取图像。问题是,将图像从网站获得被拉伸以显示在imageview的... 这里我的代码图像不适合UIImageView的框架

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

任何人都可以电话我是如何显示的图像适合显示在ImageView的????

回答

29

要么使用

imageView.contentMode = UIViewContentModeScaleAspectFill; 

imageView.contentMode = UIViewContentModeScaleAspectFit; 

第一个将填充框架,可能切断你的图像的部分。第二个将显示整个图像,可能会打开框架的区域。

+2

Swift3现在是imageView.contentMode = .scaleAspectFit或.scaleAspectFill – HFR1994

0

试试看看这个代码。

imView.contentMode = UIViewContentModeScaleAspectFit; 
4

的SWIFT:

imageView.contentMode = UIViewContentMode.ScaleAspectFit 

对于目标C:

imageView.contentMode = UIViewContentModeScaleAspectFit 

ScaleAspectFit选项是使用缩放内容通过以适合视图的大小保持宽高比。视图边界的其余任何区域都是透明的。

Screenshot

参考Apple docs了解详情。

1

根据长宽比缩放图像后,我最终调整了图像大小。

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)