2011-07-06 2 views
19

UIGestureRecognizer을 취소 또는 재설정하려면 어떻게해야합니까? 문제는 제스처 중에 waitForSomethingNO으로 설정하면 다음 이벤트는 UIGestureRecognizerStateChanged입니다. 그러나 첫 번째 이벤트는 UIGestureRecognizerStateBegan이어야합니다.UIGestureRecognizer를 취소/재설정하는 방법

내 코드 :

- (void) panned:(UIPanGestureRecognizer *) recognizer { 
    if (waitForSomething) { 
     // cancel or reset the recognizer! 
     // because the next event should be UIGestureRecognizerStateBegan and not UIGestureRecognizerStateChanged 
     return; 
    } 

    switch (recognizer.state) { 
     case UIGestureRecognizerStateBegan: 
      // important initialisation code 
      break; 

     case UIGestureRecognizerStateChanged: 
      // do something 
      break; 
    } 
} 

당신이 도움을 주셔서 감사합니다!

답변

37

알았습니다.

if (waitForSomething) { 
    recognizer.enabled = NO; 
    recognizer.enabled = YES; 
    return; 
} 

다음 이벤트가 될 것입니다 UIGestureRecognizerStateFailedUIGestureRecognizerStateBegan 다음 : :-)

어쩌면 다른 사람이 여기에,이 문제에서 실행하는 솔루션입니다.

+0

작품, 감사 – n13

+3

이 좋은 팁, 그리고 심지어 최근 WWDC 비디오 애플 추천 –

0

스위프트 4 : 마법처럼

if waitForSomething { 
    recognizer.isEnabled = false 
    recognizer.isEnabled = true 
    return 
}