Расширенные жесты iOS: получение вектора направления движения - PullRequest
13 голосов
/ 28 сентября 2010

Просматривая документацию , кажется, что новый расширенный API жестов не определяет направление пролистывания за пределы базового {влево, вправо, вверх, вниз}.Мне нужна начальная точка пролистывания и направление.

Есть ли какой-либо способ извлечь это, кроме кодирования моей собственной расширенной библиотеки жестов, с нуля основных жестов?единственный вариант, может кто-нибудь указать мне на какой-нибудь открытый исходный код, который делает это?

1 Ответ

15 голосов
/ 28 сентября 2010

Понял!Документация: здесь , под ' Создание пользовательских распознавателей жестов ' внизу.

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

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

На самом деле поведение по умолчанию - сделать ваш распознаватель наблюдателем этих событий.Это означает, что ваше представление получает их так, как раньше, и, кроме того, если ваш распознаватель заметит жест, он вызовет ваш метод myCustomEventHandler внутри вашего представления (вы передали его селектор, когда подключили распознаватель).

Но иногдаВы хотите, чтобы исходные сенсорные события не достигли вида, и вы можете поиграть в своем распознавателе, чтобы сделать это.поэтому немного вводить в заблуждение представление о нем как о «наблюдателе».

Существует еще один сценарий, когда один жест должен съесть другой.Как будто вы не можете просто отправить обратно один клик, если ваш вид также настроен на получение двойных кликов.Вы должны подождать, пока распознаватель двойного щелчка не сообщит об ошибке.и если он успешен, вам нужно пропустить один клик - очевидно, вы не хотите отправлять оба обратно!

...