Почему бы не вызывать UIPinchGestureRecognizer, а scrollViewDidEndZooming - вызывать? - PullRequest
1 голос
/ 19 июля 2011

У меня есть UIViewController, который использует UIScrollView, и в этом Scrollview у него есть UIImageView.

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

Это выглядит примерно так: UIView UIPinchGestureRecognizer проблема

Я пробовал нескольковещи:

  • установить contentMode на UIViewContentModeScaleAspectFit

  • установить multipleTouchEnabled = YES

  • установить userInteractionEnabled = YES

И все же, он все еще не всегда ловит событие сжатия.

Вот как я назначаю жест представлению, довольно просто:

   UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(zoomPinch:)];
    [MediaScroller addGestureRecognizer:pinchRecognizer];
    [pinchRecognizer release];

Кроме того, я замечаю, что scrollViewDidEndZooming вызывается из моего делегата, но переменная масштабавсегда 1.0.Как это может быть?

scrollViewDidEndZooming вызывается всегда, а метод повышения (zoomPinch) вызывается не всегда.Есть ли причины, по которым это могло бы произойти?И как я могу это исправить?:)

1 Ответ

6 голосов
/ 19 июля 2011

Я полагаю, что вам нужно реализовать это в вашем recognizer delegate:

pinchRecognizer.delegate = self;

, а затем на собственном классе:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
     return YES;
}

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

...