2011-07-06 13 views
19

nasıl iptal edilir/sıfırlanır UIGestureRecognizer'u nasıl iptal edebilir veya sıfırlayabilirim? Sorun şu ki, bir hareket sırasında waitForSomething değerini NO olarak ayarlarsam, sonraki olay UIGestureRecognizerStateChanged olur. Ancak ilk etkinlik UIGestureRecognizerStateBegan olmalıdır.Bir UIGestureRecognizer

Benim Kod:

- (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; 
    } 
} 

yardımcı için teşekkür ederiz!

cevap

37

Anladım!

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

sonraki etkinlik olacak UIGestureRecognizerStateFailedUIGestureRecognizerStateBegan ardından: :-)

Belki birilerinin burada, bu soruna çalışır çözümdür.

+0

eserler sayesinde – n13

+3

Bu büyük bir ipucu olduğunu ve hatta son WWDC videoda Apple tarafından önerilen –

0

Swift 4: Büyü gibi

if waitForSomething { 
    recognizer.isEnabled = false 
    recognizer.isEnabled = true 
    return 
} 
İlgili konular