2012-09-15 75 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)