インターフェイスビルダーを使用して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に表示するのに適していると誰かに教えてもらえますか????
どちらかを使用
imageView.contentMode = UIViewContentModeScaleAspectFill;
または
imageView.contentMode = UIViewContentModeScaleAspectFit;
最初のものはフレームを塗りつぶし、おそらく画像の一部を切り取ります。 2つ目は画像全体を表示し、フレームの領域を開いたままにする可能性があります。
For Swift:
imageView.contentMode = UIViewContentMode.ScaleAspectFit
Objective-Cの場合:
imageView.contentMode = UIViewContentModeScaleAspectFit
ScaleAspectFitオプションは、アスペクト比を維持してビューのサイズに合わせてコンテンツをスケーリングするために使用されます。ビューの境界の残りの領域はすべて透明です。
詳細は Apple docs を参照してください。
アスペクト比に従って画像が拡大縮小された後、画像のサイズを変更することになりました。
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)
このコードを試してください。
imView.contentMode = UIViewContentModeScaleAspectFit;