"Discover how to use multiple gesture recognizers on the same view."
같은 뷰에서 다중 제스쳐 리코그나이저를 사용하는 방법을 알아봅니다.
제스쳐 리코그나이저들은 들어오는 터치이벤트를 각각 추적합니다. 그러나 UIKit
은 단일 뷰에서 한 번에 하나의 제스쳐만을 인식하도록 허용합니다. 한 번에 한 가지 제스쳐만을 인식하는 것은 일반적으로 권장되는 내용입니다. 왜냐하면 사용자 입력을 한 번에 하나 이상의 액션 촉발로부터 방지해주기 때문입니다. 그러나 이 기본값 동작은 의도하지 않은 부작용을 발생시킬 수 있습니다. 예를 들어 팬과 스와이프 제스쳐 리코그나이저를 포함하는 뷰에서 스와이프는 인식되지 않습니다. 팬 제스쳐가 연속적이기 때문에 이산적 제스쳐인 스와이프 제스쳐 리코그나이저를 인식하기 전에 팬 제스쳐를 먼저 인식합니다.
기본값 인식 동작의 의도하지 않은 부작용을 방지하려면, UIKit
을 딜리게이트 객체를 사용해서 특정 순서로 제스쳐를 인식할 것을 알려야 합니다. UIKit
은 제스쳐 리코그나이저가 다른 제스쳐 리코그나이저 전 혹은 후에 와야 하는지를 결정하기 위해 딜리게이트 객체의 메소드를 사용합니다. 예를 들어 딜리게이트는 UIKit
에게 스와이프 제스쳐 리코그나이저는 팬 제스쳐 리코그나이저의 행동이 허락되기 전에는 실패해야 한다고 알려줄 수 있습니다. 또한, 딜리게이트는 UIKit
에게 두 제스쳐가 동시에 인식되어야 한다고 알려줄 수도 있습니다.
뷰에서 인식된 제스쳐들의 순서를 결정하기 위해 제스쳐 리코그나이저 딜리게이트 객체를 사용합니다.
https://developer.apple.com/documentation/uikit/touches_presses_and_gestures/coordinating_multiple_gesture_recognizers/preferring_one_gesture_over_another
https://velog.io/@panther222128/Preferring-One-Gesture-Over-Another
동시에 하나 이상의 제스쳐 감지를 허용할 수 있도록 하는 딜리게이트 사용 방법을 알아봅니다.
https://developer.apple.com/documentation/uikit/touches_presses_and_gestures/coordinating_multiple_gesture_recognizers/allowing_the_simultaneous_recognition_of_multiple_gestures
https://velog.io/@panther222128/Allowing-the-Simultaneous-Recognition-of-Multiple-Gestures