Ограничение UIImageView, чтобы быть 1: 1 соотношение сторон и 1: 1 масштабируется до оригинала? - PullRequest
0 голосов
/ 17 октября 2018

Есть ли какой-нибудь простой способ достижения пропорции 1: 1 и масштабирования до исходного изображения внутри ImageView?

Я не хочу только сохранять соотношение сторон изображения, я хочу, чтобы оно былоточно такой же размер, как и базовое изображение (масштаб 1: 1 также по отношению к оригиналу) ... не меньше, не больше ... поэтому на экране будет 1: 1 в термах пикселей или точках UIKit или в / б соригинал (масштаб 1).

Если вы устанавливаете только соотношение сторон, изображение может увеличиваться или уменьшаться при сохранении соотношения сторон.Я хочу предотвратить это поведение и запретить его масштабирование.

Как я могу установить в качестве ограничения 1 значение в качестве ограничения?Есть ли способ сделать это, без какого-либо жесткого кодирования по ограничениям ширины / высоты, чтобы соответствовать размеру исходного изображения?

По сути, я хочу сказать, autolaayout ... вот изображение, не трогайтеэто, никогда не масштабировать, несмотря ни на что, пусть оно будет точно таким же, как оригинал (масштабирование 1).

ОБНОВЛЕНИЕ:

Единственный способ, которым я мог бы добиться этого, этоустановка приоритетов объятия / сжатия выше, чем у других элементов в макете.Только установка ограничения соотношения сторон не делает этого ... Я думаю, что нет другого способа обеспечить такое поведение, не затрагивая приоритеты сжатия / объятия.

Ответы [ 3 ]

0 голосов
/ 18 октября 2018

Не налагайте никаких ограничений на высоту или соотношение сторон на UIImageView, просто наложите ограничение ширины или начальное и конечное ограничения в зависимости от ваших потребностей.И сделать contentMode AspectFill.

ImageView будет автоматически масштабироваться в соответствии с соотношением сторон изображения, которое он содержит.Однако убедитесь, что у вас есть высота <= максимальная высота, которую вы должны иметь (на изображениях ниже я должен указать высоту <= высота экрана), чтобы изображение не выходило за желаемые границы. </p>

enter image description here enter image description here

0 голосов
/ 18 октября 2018

Попробуйте установить ContentMode вашего ImageView как Center.

Также не забудьте установить для клипа границы.

imageView.clipsToBounds = true
imageView.contentMode = .center
0 голосов
/ 17 октября 2018

Установите для contentMode значение aspectFit.

См. Официальная документация Apple :

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

...