2011-09-06 2 views
28

볼 수있는 컨트롤이 여러 개있는 응용 프로그램을 개발 중입니다. 사용자가보기를 두 번 탭하면 활성화 할 수 있습니다.Objective-c :보기에서 더블 탭을 감지하는 방법?

두 번 클릭하는 예제는 사용할 수 있지만 해당 이벤트가있을 때 이벤트를 잡으려고합니다. 더블 탭.

답변

74

도청하려는보기에 UITapGestureRecognizer을 추가해야합니다. 이처럼

:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)]; 
    tapGesture.numberOfTapsRequired = 2; 
    [self.view addGestureRecognizer:tapGesture]; 
    [tapGesture release]; 
} 

- (void)handleTapGesture:(UITapGestureRecognizer *)sender { 
    if (sender.state == UIGestureRecognizerStateRecognized) { 
     // handling code 
    } 
} 
+5

여러 제스처 인식기가있는 경우 다음을 사용하여 "높은 우선 순위"를 두 번 탭할 수 있습니다. [self.view.tapGestureRecognizer requireGestureRecognizerToFail : self.doubleTapGestureRecognizer]; –

+2

클래스 개인 인터페이스에 를 추가하는 것을 잊지 마십시오 ... @interface IBMYourClassName()

8

UITapGestureRecognizernumberOfTapsRequired = 2과 함께보기에 추가하십시오.

+0

는 UITapGestureRecognizer은 제어 무엇입니까? 컨트롤에 없습니다. 라이브러리 – Azhar

+0

UIGestureRecognizer 서브 클래스입니다. 코드로 작성해야합니다. –

+0

내가 선택하고 UIAlert이 코드를 작성하지만이 작업 을 doesnot - (무효)의 viewDidLoad { UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer의 ALLOC] initWithTarget : 자기 행동 : @selector (handleTapGesture :)] tapGesture.numberOfTapsRequired = 2; \t [tapGesture release]; \t } – Azhar

관련 문제