UIGestureRecognizer - обнаружение нажатия и перетаскивания, как трекпад

Есть ли способ каскадировать UIGestureRecognizers для обнаружения крана и затем перетаскивания. Например, я хочу определить, когда пользователь меткает, а затем тянет его пальцем.

Это будет похоже на то, как drag работает на трекпадах.

Итак, я хочу обнаружить кран, а затем хочу, чтобы UIPanGestureRecognizer отправлял мне непрерывные обновления.

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

Возможно ли это?

Ответ 1

хотя я не нашел решение так, как я ожидал, я нашел лучшее решение.

Просто используя UILongPressGrstureRecognizer, неудивительно, что он способен реализовать откат и перетаскивание.

Вы должны:

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

например:.

UILongPressGestureRecognizer *mouseDrag = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleDrag:)];
mouseDrag.numberOfTapsRequired=1;
mouseDrag.minimumPressDuration=0.05;
[clickLeft requireGestureRecognizerToFail:mouseDrag];

чтобы обработать перетаскивание, вы должны определить состояние, чтобы обрабатывать его соответственно как непрерывный жест.