Подтвердить что ты не робот

Изображение не подходит для рамки UIImageView

Я создаю UIImageView с помощью интерфейса Builder. Его размер кадра (320,67). Я хочу отобразить изображение на изображении. Я получаю изображение из Интернета. Проблема в том, что изображение, полученное из Интернета, растянуто для отображения на изображении... Здесь мой код

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

Кто-нибудь может мне сказать, как отображать изображение, подходящее для отображения на imageView????

4b9b3361

Ответ 1

Используйте

imageView.contentMode = UIViewContentModeScaleAspectFill;

или

imageView.contentMode = UIViewContentModeScaleAspectFit;

Первый заполняет рамку, возможно, отсекая части вашего изображения. Второй будет отображать все изображение, возможно, оставляя области кадра открытыми.

Ответ 2

Для Swift:

imageView.contentMode = UIViewContentMode.ScaleAspectFit

Для Objective-C:

 imageView.contentMode = UIViewContentModeScaleAspectFit

Параметр ScaleAspectFit используется для масштабирования содержимого, чтобы он соответствовал размеру представления, поддерживая соотношение сторон. Любые остальные области границ представлений прозрачны.

Снимок экрана

Подробнее см. Apple docs.

Ответ 3

В результате я изменил размер изображения после масштабирования изображения в соответствии с его соотношением сторон.

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)

Ответ 4

Попробуйте этот код.

imView.contentMode = UIViewContentModeScaleAspectFit;