16

私はusinginterfaceBuilderを作成していUIImageViewます。そのフレームサイズは(320,67)です。imageViewに画像を表示したい。Webから画像を取得しています。問題は、Webから取得した画像が引き伸ばされて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;

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

于 2012-09-15T09:38:36.417 に答える
7

Swiftの場合:

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 に答える