web-dev-qa-db-ja.com

画像がUIImageViewのフレームに収まりません

インターフェイスビルダーを使用して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に表示するのに適していると誰かに教えてもらえますか????

15
Venk

どちらかを使用

imageView.contentMode = UIViewContentModeScaleAspectFill;

または

imageView.contentMode = UIViewContentModeScaleAspectFit;

最初のものはフレームを塗りつぶし、おそらく画像の一部を切り取ります。 2つ目は画像全体を表示し、フレームの領域を開いたままにする可能性があります。

36
mvds

For Swift:

imageView.contentMode = UIViewContentMode.ScaleAspectFit

Objective-Cの場合:

 imageView.contentMode = UIViewContentModeScaleAspectFit

ScaleAspectFitオプションは、アスペクト比を維持してビューのサイズに合わせてコンテンツをスケーリングするために使用されます。ビューの境界の残りの領域はすべて透明です。

Screenshot

詳細は Apple docs を参照してください。

7

アスペクト比に従って画像が拡大縮小された後、画像のサイズを変更することになりました。

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)
2
Speakeasys

このコードを試してください。

imView.contentMode = UIViewContentModeScaleAspectFit;
0
Nag Raj