Имитация перетаскивания внутри прокрутки - PullRequest
2 голосов
/ 26 февраля 2011

:) Я работаю над перехватом и повторной отправкой жестов, отправленных в просмотр прокрутки.

Что я хочу сделать:

Убить все распознаватели жестов в просмотре прокрутки.Я выполнил это.

Добавьте новые жесты-распознаватели в представление прокрутки.Я также достиг этого.

Заставьте новые распознаватели вести себя так же, как и старые.Я НЕ выполнил это, и мне нужна помощь в этом.

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

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

Ответы [ 2 ]

4 голосов
/ 26 февраля 2011

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

У класса UIPanGestureRecognizer есть свойствоimumNumberOfTouches, которое вы должны иметь возможность установить в 2 для вашего UIScrollView.

Для этого просто возьмите свои распознаватели жестов взглядов ...

myScrollView.gestureRecognizers;

Перебор массива для поиска жеста панорамирования ...

if ([gestureRecogniser isKindOfClass:[UIPanGestureRecognizer class]])

Приведите указатель жеста-распознавателя к более конкретному типу ...

UIPanGestureRecognizer *panGestureRecogniser = (UIPanGestureRecognizer *)gestureRecogniser;

И, наконец, установите его свойствоimumNumberOfTouches ...

panGestureRecogniser.minimumNumberOfTouches = 2;

Единственное, что вам, возможно, придется сделать, - включить мультитач для вашего представления - в UIView есть свойство множественное касание, которое должно быть установлено в true.

0 голосов
/ 27 сентября 2016

В Swift вы можете просто написать

myScrollView.panGestureRecognizer.minimumNumberOfTouches = 2
...