2012-02-01 6 views
1

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

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

ответ

1

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

В контактахМорошо проверьте, отображаются ли оба пальца на экране: если это так, вычислите новый кадр, применив edgeInsets в текущем положении касания.

Заголовок: click
Реализация: click

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

+0

Большое спасибо. Я ценю это!! –

+0

Вчера вечером я отправил вам электронное письмо. По-видимому, это работает на симуляторе, но не на устройстве по любой причине. У вас есть какие-то подсказки, почему? –

0

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

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

Смежные вопросы