Gesture 사용하기
Gesture는 특정한 행동을 등록하여 그 행동에 맞는 액션을 취하기 위해 사용됩니다.
제스쳐는 UIView에 등록할 수 있습니다. 만약 UIView를 상속하고 있는 UIButton 또는 UIView 하위 계층에 UIButton이 있다면
어떻게 될까요? 네 기본으로 등록할 경우 그 Button에 대한 이벤트는 발생하지 않습니다.
이와 같은 문제로 많은 분들이 질문을 하십니다. 문제 해결 방법은 간단합니다.
GestureRecognize클래스는 콜백 델리게이트 메서드로
[code language="ObjC"]
// Ask the delegate if a gesture recognizer should receive an object representing a touch.
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
[/code]
간단하게 델리게이트를 등록하고 제스쳐가 발동되었을 때 해당 액션을 Gesture Recognizer가 받게 됩니다.
여기서 그 액션에 대한 처리를 여부를 판단할 수 있습니다.
만약 Touch ex) 버튼에 대한 액션을 알리고 싶다면 NO를, 그 해당 액션을 새로 정의한다면 YES로 질의에 대한 답변을 날릴 수 있습니다.
--------------------------------------------------------------------------------------------
이 문제 포스팅 이유는 제 프로젝트에 들어가는 Auto-Lock 기능 때문입니다.
Auto-Lock 기능은 사용자가 아무 행동을 하지 않았을 때, 정해진 시간 이후가 되면 자동으로 코드 락 창이 활성화 되어야 하는데. 그 아무 행동을 하지 않았을 때 그 시점을 찾지 못하여 Gesture를 통해 구현할려고 합니다.