Передача событий касания в superview, но длительное нажатие - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь передать события касания в суперпредставление, но обрабатывать события длинного нажатия.Я добавил LongPressGestureRecognizer в вид сверху, но события касания не передаются в суперпредставление.Я пробовал несколько подходов:

  • Переопределение hitTest не работает, так как обработчик распознавания жестов при длинном нажатии не вызывается
  • isUserInteractionEnabled - так же, как и выше
  • Переопределение касанийBegan/ Завершение и вызов их вручную в суперпредставлении не вызывает событие касания

1 Ответ

1 голос
/ 21 мая 2019

Работа со сложными взаимодействиями отводов может быть сложной, а смешивание разных подходов может значительно усложнить задачу.

Как правило, лучший способ справиться с этим - это иметь одно представление с несколькими распознавателями жестов. Реализуйте UIGestureRecognizerDelegate метод gestureRecognizer(_:shouldRecognizeSimultaneouslyWith:) и gestureRecognizer(_:shouldRequireFailureOf:) для обработки конфликтов. Когда событие касания распознано, оно может делегировать действие любому другому объекту, необходимому для его обработки. Попытки иметь дело с прикосновениями одновременно с разными взглядами - плохой способ решить проблему. Жесты зависят от других жестов и не могут все обрабатываться независимо различными видами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...