Я занимаюсь разработкой приложения для iPhone / iPad, которое поддерживает перетаскивание элементов между представлениями таблицы.Поскольку все таблицы не помещаются на экране, я написал пользовательский UIScrollView
, который размещает их горизонтально и поддерживает разбиение на страницы.
В то время как я получил первичное перетаскивание вместе, естьнесколько оставшихся проблем, которые я не могу преодолеть.
После того, как пользователь выбрал элемент для перетаскивания и перетаскивает, он не может прокрутить UIScrollView
, чтобы найти пункт назначения UITableView
.
Иногда пользователь захочет перетащить элемент в того же табличного представления.Но как только перетаскивание началось, табличное представление больше не распознает жест прокрутки.
Я пробовал различные варианты, в том числе реализацию UIGestureRecognizerDelegate
и использование нескольких распознавателей жестов.распознавать жесты одновременно.
Проблема, как я вижу, вытекает из этого описания из Руководства по обработке событий: «iOS распознает, как один или несколько пальцев касаются экрана, как часть последовательности мультитач. Эта последовательность начинается, когдаПервый палец касается экрана и заканчивается, когда последний палец поднят с экрана. "
UIGestureRecognizer
экземпляры всегда совпадают со всей последовательностью .В моем случае я хочу разбить одну последовательность на отдельные жесты - некоторые касания распознают перетаскивание элемента, в то время как разные касания в пределах одной последовательности должны распознаваться как жест смахивания или прокрутки.По сути, я хочу, чтобы распознаватели жестов распознавали одновременно, но только разных касаний.Когда кто-то распознает касание как часть жеста, другие должны игнорировать это касание.
Я не нашел способа согласованно решить все эти проблемы, используя подклассы UIGestureRecognizer
по умолчанию, и теперь ясобираюсь написать свой собственный распознаватель жестов, состоящий из нескольких частей.
Я бы предпочел не делать этого - есть ли более подходящий способ достичь того же результата?