Кажется, вы просто хотите, чтобы оба этих распознавателя жестов работали одновременно.Просто внедрите UIGestureRecognizerDelegate
для вашего parentView
и сделайте его tapGestureRecognizer
и gestureRecognizerA
делегатом.Затем реализуйте дополнительный метод там:
// MARK: - UIGestureRecognizerDelegate
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) {
return true
}
, который может быть в состоянии обнаружить касание в subView
даже при выполнении кругового движения в пределах parentView
.
ОБНОВЛЕНИЕ: При использовании распознавателей жестов "переадресация" будет означать простой вызов метода другого распознавателя.Просто укажите в качестве параметра распознаватель, который выполняет пересылку.
Например, tapGestureRecognizer
запускает viewWasTapped(_ sender: UITapGestureRecognizer)
при обнаружении касания.Теперь, когда ваш gestureRecognizerA
хочет перенаправить свои события на tapGestureRecognizer
, он просто делает это, вызывая:
subView.viewWasTapped(self.gestureRecognizerA)
С очевидным изменением самого метода:
func viewWasTapped(_ sender: UIGestureRecognizer) {
// ...
}
Это работает для UITapGestureRecognizer
.Отправителем может быть любой другой UIGestureRecognizer
, и у вас все еще будет почти вся информация, чтобы разрешить жест касания.