제스처 인식기는 여러 제스처 관련 이벤트를 인식할 수 있습니다.
특정 제스처 이벤트가 일어날 때 마다 각 타깃에 맞는 액션 메시지를 보내어 제스처 관련 이벤트를 처리할 수 있습니다.
타깃-액션 연결을 설정
UIView의 메서드인 addGestureRecognizer(_:) 메서드를 통해 뷰에 연결
제스처가 인식되면 해당 제스처 이벤트에 연결된 타깃에 액션 메시지가 전달됨
호출되는 액션메서드는 아래의 메서드 구현 형식 중 하나와 같아야 합니다.
@IBAction func myActionMethod()
@IBAction func myActionMethod(_ sender: UIGestureRecognizer)
인터페이스 빌더를 사용하여 제스처 인식기 추가
코드작성을 통해 제스처 인식기 추가하기
아래의 7가지의 UIGestureRecognizer 하위 클래스를 통해 여러 제스처를 인식할 수 있습니다.
init(target: Any?, action: Selector?)
: 제스처 인식기를 타깃-액션의 연결을 통해 초기화 합니다.func location(in: UIView?) -> CGPoint
: 제스처가 발생한 좌표를 반환합니다.func addTarget(Any, action: Selector)
: 제스처 인식기 객체에 타깃과 액션을 추가합니다.func removeTarget(Any?, action: Selector?)
: 제스처 인식기 객체로부터 타깃과 액션을 제거합니다.func require(toFail: UIGestureRecognizer)
: 여러 개의 제스처 인식기를 가지고 있을 때, 제스처 인식기 사이의 의존성을 설정한다.var state: UIGestureRecognizerState
: 현재 제스처 인식기의 상태를 나타냅니다.var view: UIView?
: 제스처 인식기가 연결된 뷰입니다.var isEnabled: Bool
: 제스처 인식기가 사용 가능한 상태인지를 나타냅니다.var cancelsTouchInView
: 제스처가 인식되었을 때 터치 이벤트가 뷰로 전달되는 여부에 영향을 미칩니다.touchesCancelled(_:with:)
메시지를 통해 취소됩니다. 제스처 인식기가 제스처를 인식 못하거나 이 프로퍼티의 값이 false라면 뷰가 모든 터치를 전달받게 됩니다.var delaysTouchesBegan
: began 단계에서 제스처 인식기가 추가된 뷰에 터치의 전달 지연 여부를 결정합니다.var delaysTouchesEnded
: end 단계에서 제스처 인식기가 추가된 뷰에 터치의 전달 지연 여부를 결정합니다.