Расширенные жесты iOS: получение вектора направления смахивания

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

Мне нужна начальная точка салфетки и направление.

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

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


person P i    schedule 28.09.2010    source источник


Ответы (1)


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

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

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

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

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

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

person P i    schedule 28.09.2010
comment
Ссылка перемещена сюда: developer.apple. com/library/ios/#documentation/EventHandling/ - person Justin Tanner; 26.01.2011
comment
Снова ссылка переехала сюда: developer.apple .com/library/ios/documentation/EventHandling/ - person Rukshan Marapana; 11.06.2014
comment
Для того, что вы хотите, вы должны использовать жест панорамирования, а не жест смахивания. Пан даст вам именно то, что вы просите. - person Victor Engel; 22.11.2018