2010-10-16 2 views
3

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

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

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

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

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

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

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

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

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

ответ

2

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

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

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

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

Смежные вопросы