"Learn how gesture recognizers interact with UIKit controls such as buttons switches and sliders."
제스쳐 리코그나이저가 버튼, 스위치, 슬라이더와 같은 UIKit
컨트롤과 상호작용하는 방법을 알아봅니다.
뷰에 있는 제스쳐 리코그나이저는 이벤트 처리를 위한 UIKit
컨트롤의 기능에 영향을 미치지 않습니다. 컨트롤의 bounds 내에서 발생한 이벤트는 우선 컨트롤에 의해 처리됩니다. 이는 컨트롤이 컨트롤의 액션 메소드를 호출할 기회를 우선적으로 줍니다. 구체적으로 UIKit
컨트롤은 아래와 같은 상황에서 갖고 있는 액션 메소들르 호출합니다.
UIButton
, UISwitch
, UIStepper
, UISegementedControl
, UIPageControl
객체에서 발생합니다.UISlider
객체의 손잡이에서 발생합니다.UISwitch
객체의 손가락에 발생합니다.컨트롤이 액션 메소드를 호출하기 전에 모든 선행하는 제스쳐를 처리하려면, 컨트롤 자체에 제스쳐 리코그나이저를 설치해야 합니다. 제스쳐 리코그나이저는 연결된 뷰 전에 터치 이벤트를 처리합니다. 결과적으로 제스쳐 리코그나이저를 컨트롤에 직접 설치하는 것은 해당 컨트롤이 액션 메소드를 호출하는 것을 방지합니다.
Important
항상 표준 컨트롤의 기본값 동작을 변경하기 전에 platform-specific human interface guidelines를 참조하시기 바랍니다. 더 많은 정보는 iOS Human Interface Guidelines 혹은 Apple TV Human Interface Guidelines를 살펴보시기 바랍니다.
iOS Human Interface Guidelines
https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/
Apple TV Human Interface Guidelines
https://developer.apple.com/design/human-interface-guidelines/tvos/overview/themes/
뷰에서 인식된 제스쳐들의 순서를 결정하기 위해 제스쳐 리코그나이저 딜리게이트 객체를 사용합니다.
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