2013-12-23 2 views
0

다시 내 응용 프로그램 내에서 하나의보기를 만들었습니다. 그리드와 같은 10 개의보기를 만들었고 10 개의보기에서 UITapGestureRecogniser를 추가했습니다. 그리드의보기 중 하나를 메서드를 호출합니다 태그 가치에 따라 특정 클래스의 새로운보기 인스턴스를 만들 것입니다. 그러나 사용자가 한 번에 두보기 또는 도수의 차이의 도청 경우 문제가 점점 오전 초, 그 방법은 두 번 호출됩니다. 그것은 내 application.i에 문제가이 문제에 대한 해결책을 필요가 없습니다 무엇을 해야할지. 내게 가능한 한 빨리 도와주세요. 난 그냥 부울을 만들 것한 번에 두 번보기를 두 번 누르는 경우 한 번만 제스처를 고려하는 방법

+0

처럼 인식 상태를 확인하는 희망 그 방법에서 당신이하고있는 일에 대해 좀 더 구체적으로 말합니까? – santhu

+0

해당 메서드가 호출 될 때 해당 메서드 내부에서 나중에 이벤트를 수신 할 때까지 이벤트를받지 못하게하기 위해 윈도우 또는 응용 프로그램의 이벤트를 비활성화합니다. – santhu

답변

0

감사 & 감사 swathi는, 이러한 뷰에 의해 호출 모든 방법에서 NO로 설정 이잖아. 이 방법의 끝에서

-(void)view1tapped{ 
     BOOL shouldRecognizeTap = enabled; 
     self.enabled = NO; 
     if (shouldRecognizeTap){ 
       // do your stuff here 
     } 
     self.enabled = YES; 
} 

-(void)view2tapped{ 
     BOOL shouldRecognizeTap = enabled; 
     self.enabled = NO; 
     if (shouldRecognizeTap){ 
       // do your stuff here 
     } 
     self.enabled = YES; 
} 

또한 YES로 설정하여 gestureRecognizer 위임 방법, 나는 당신이 될 수있는이

-(void) handleTapGesture:(UIGestureRecognizer *) sender { 
    if (sender.state != UIGestureRecognizerStateEnded) // <--- 
     return; 

    sender.enabled = NO // (or disable all the other gesture recognizers). 
    // do your stuff here 
    sender.enabled = YES; 
} 
관련 문제