Разделение последовательности касаний между несколькими экземплярами UIGestureRecognizer - PullRequest
3 голосов
/ 16 октября 2010

Я занимаюсь разработкой приложения для iPhone / iPad, которое поддерживает перетаскивание элементов между представлениями таблицы.Поскольку все таблицы не помещаются на экране, я написал пользовательский UIScrollView, который размещает их горизонтально и поддерживает разбиение на страницы.

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

  1. После того, как пользователь выбрал элемент для перетаскивания и перетаскивает, он не может прокрутить UIScrollView, чтобы найти пункт назначения UITableView.

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

Я пробовал различные варианты, в том числе реализацию UIGestureRecognizerDelegate и использование нескольких распознавателей жестов.распознавать жесты одновременно.

Проблема, как я вижу, вытекает из этого описания из Руководства по обработке событий: «iOS распознает, как один или несколько пальцев касаются экрана, как часть последовательности мультитач. Эта последовательность начинается, когдаПервый палец касается экрана и заканчивается, когда последний палец поднят с экрана. "

UIGestureRecognizer экземпляры всегда совпадают со всей последовательностью .В моем случае я хочу разбить одну последовательность на отдельные жесты - некоторые касания распознают перетаскивание элемента, в то время как разные касания в пределах одной последовательности должны распознаваться как жест смахивания или прокрутки.По сути, я хочу, чтобы распознаватели жестов распознавали одновременно, но только разных касаний.Когда кто-то распознает касание как часть жеста, другие должны игнорировать это касание.

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

Я бы предпочел не делать этого - есть ли более подходящий способ достичь того же результата?

1 Ответ

2 голосов
/ 21 декабря 2010

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

Для тех, кто хочет сделать что-то подобное, посмотрите на этот проект / сообщение в блоге, которое является попыткой создать библиотеку распознавания суб-жестов:

http://sunetos.com/items/2010/10/31/adding-subgestures-to-ios-gesture-recognition/

Я не использовал его - в итоге я вручную создал свои собственные итерации - но при желании рассмотрим рефакторинг, чтобы использовать его.

...