Как перейти от одного распознавателя жестов к другому - PullRequest
0 голосов
/ 04 января 2012

У меня есть карта, нарисованная с помощью OpenGLES, и у меня есть распознаватель жестов панорамирования, у которого MaximumNumberofTouches установлен в 1 для панорамирования вокруг карты и распознаватель жестов пинч для масштабирования. Я хочу начать панорамирование, как только я закончу масштабирование (один палец поднят с экрана), но распознаватель жестов панорамирования не включается до тех пор, пока не будет выполнено распознавание пинчгестера, когда он обнаружит, что на экране нет пальцев. Есть идеи?

1 Ответ

1 голос
/ 04 января 2012

Можно разрешить активировать оба жеста с помощью метода делегата:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
  shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    //  The two recognizers using the delegate (scale and rotate) should both be active.
    //
    return YES;
}

И сохраняйте BOOL, который отслеживает масштабирование пользователя, не позволяя коду в жесте панорамирования выполняться, пока этот BOOL равен YES. Изменение значения BOOL путем проверки количества касаний в методе touchesMoved: withEvent (или, возможно, в другом методе UIGestureRegonizer).

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

~ Удачи

...