Как показано на диаграмме ниже, мое приложение имеет несколько UIViews, B
, C
и D
, бок о бок, и все содержащиеся в обволакивающее UIView A
:Детектирование жесты перекрывающихся областей экрана в iOS5
У меня есть UIPinchGestureRecognizer
в каждом из B
, C
и D
. То, что я также хотел бы сделать, это распознать другой жест по всей области A
(не мешая другим распознавателям жестов работать).
Что является лучшей стратегией для этого? Я нацелен на iOS5 +, не требуется обратной совместимости.
Также стоит отметить, что распознаватель жестов для A
, вероятно, должен быть обычным распознавателем жестов, так как я хочу обнаружить щепотку, но с> двумя пальцами.
мысль:
При установке жест распознаватель для A
не работает хорошо, можно было бы сделать это по-старому, используя touchesBegan
и т.д. Как UIResponder
docs записки, вы можете иметь подкласс из UIView
просто позвоните [super touchesBegan:touches withEvent:event]
, чтобы он прошел в цепочке ответчиков, если вас это не интересует.
Спасибо за ваш ответ. Хит-тестирование, в котором компонент/часть кода? С помощью какой техники? (например, касаетсяBegan и т. д.)? – occulus
У меня нет кода, который я могу разместить как есть, но я попытаюсь объяснить. Используйте оба касания как начальную идентификацию касания, а GestureRecognizes в качестве вторичного обработчика для касания внутри идентифицированного компонента. На начальном касании нажмите тест на весь экран. Прокрутите все свои элементы и найдите, какие из них находятся в коснувшихся координатах. Поэтому, если вы коснулись B, цикл должен найти B и A, так как оба находятся в координатах контакта. Затем вы можете отключить/включить конфликтующие GestureRecognizes и после завершения жестов включить их обратно. –