2011-07-06 21 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 
} 
संबंधित मुद्दे