Изменение размера UIImage / UIImageView без сохранения соотношения сторон - PullRequest
1 голос
/ 01 февраля 2012

У меня есть UIImageView, к которому я добавил PinchGestureRecognizer. В настоящее время размер изображения изменяется при сжатии, но я хочу иметь возможность изменить размер изображения без сохранения соотношения сторон. Таким образом, если пользователь сжимает по горизонтали, ширина изображения увеличивается; если они ущипнут вертикально, высота увеличится и т. д.

Может кто-нибудь дать мне подсказку, как я могу это сделать, пожалуйста?

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Напишите пользовательский распознаватель жестов, для которого требуются два пальца на экране.
Как только оба пальца окажутся на экране, сохраните свое смещение к границе imageView в некоторых UIEdgeInsets.

При касании перемещается, убедитесь, что оба пальцана экране: если это так, вычислите новый кадр, применяя edgeInsets в текущей позиции касания.

Заголовок: щелкните
Реализация: щелкните

Работает хорошо и чувствует себя более естественно, чем другие реализации, которые я видел.

0 голосов
/ 01 февраля 2012

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

Вы можете создать свой собственный подкласс UIGestureRecognizer (см. здесь для документов ), который смотрел на горизонтальное и вертикальное разделение точек касания, чтобы определить 2 различных масштаба. Это должно быть довольно просто создать, я бы подумал. Просто посмотрите на начальные точки касания, а затем, когда они перемещаются, рассчитайте разницу между текущим разделением касаний и начальным разделением касаний как в вертикальном, так и в горизонтальном направлениях.

...