Есть ли встроенный способ, чтобы мой UIImageView соответствовал всему содержимому UIImage? Я что-то пропустил?

У меня есть modalView, который я представляю с UIModalPresentationPageSheet стиль, и у этого представления есть scrollView и mageView внутри этого scrollView, чтобы он мог показывать изображения и позволять пользователю манипулировать, например, масштабированием и т. д.

В viewDidLoad я так все настраиваю:

CGRect imgFrame = CGRectMake(0, 0, img.size.width, img.size.height);
imageView.frame = imgFrame;
[imageView setImage:img];

Это прекрасно работает, но проблема у меня заключается в том, что если у меня есть изображение, которое больше, чем несколько маленький размер modalView в ландшафтном режиме (из-за стиля UIModalPresentationPageSheet), оно не масштабируется и не масштабируется, поэтому я могу увидеть все это, он просто показывает мне 2/3 изображения, и для того, чтобы увидеть больше, мне нужно уменьшить масштаб.

Я установил для contentMode UIViewContentModeScaleAspectFitи это все равно ничего не изменило.

Я что-то пропустил?

1 ответ

Решение

Установите рамку вида изображения, чтобы иметь максимальную ширину и высоту размеров экрана в зависимости от текущей ориентации.

Что-то вроде:

CGRect imgFrame = CGRectMake(0, 0, min(320 ,img.size.width), min(480, img.size.height);

Это применимо к портретному режиму на iPhone (отличается для iPad). Вам придется сбросить этот кадр при изменении ориентации.

Другие вопросы по тегам