मेरे ऐप में मैंने 3.2 जेडीयूआर रिकॉग्नाइज़र जोड़े हैं जो 3.2 एसडीके में उपलब्ध हैं। सब कुछ ठीक से काम कर रहा प्रतीत होता है और स्क्रीन पर प्रतिक्रिया समय बहुत तेज रहा है। लेकिन किसी कारण से जब मैं अपने कुछ संकेतों में requireGestureRecognizerToFail
जोड़ता हूं, तो इशारा ट्रिगर होने पर बहुत ही देर हो सकती है। नीचे कोड का एक स्निपेट है जिसका उपयोग मैं इशारा रिकॉग्नाइज़र बनाने के लिए करता हूं। क्या किसी को पता है कि देरी क्यों है और मैं इसे कैसे ठीक कर सकता हूं? SingleTap
इशारा करने से रोकने के लिए requireGestureRecognizerToFail
का उपयोग कर रहा हूं जब उपयोगकर्ता DoubleTap
करता है।आईपैड जेस्चर रिकग्नाइज़र - देरी प्रतिक्रिया
- (void)createGestureRecognizers {
//Single Finger Double-Tap
UITapGestureRecognizer *singleFingerDTap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleDoubleTap:)];
singleFingerDTap.numberOfTapsRequired = 2;
[super addGestureRecognizer:singleFingerDTap];
//Single Finger Tap
UITapGestureRecognizer *singleFingerTap = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(handleSingleTap:)];
singleFingerTap.numberOfTapsRequired = 1;
[singleFingerTap requireGestureRecognizerToFail:singleFingerDTap];
[self addGestureRecognizer:singleFingerTap];
//Two Finger Pan
UIPanGestureRecognizer *panGesture2 = [[UIPanGestureRecognizer alloc]
initWithTarget:self action:@selector(handlePanGesture2:)];
panGesture2.maximumNumberOfTouches = 2;
[super addGestureRecognizer:panGesture2];
//Single Finger Pan
UIPanGestureRecognizer *panGesture1 = [[UIPanGestureRecognizer alloc]
initWithTarget:self action:@selector(handlePanGesture1:)];
panGesture1.maximumNumberOfTouches = 1;
[panGesture1 requireGestureRecognizerToFail:panGesture2];
[super addGestureRecognizer:panGesture1];
[singleFingerDTap release];
[singleFingerTap release];
[panGesture1 release];
[panGesture2 release];
}
क्या यह अपेक्षित व्यवहार नहीं है? यदि आप इसे तब तक क्रिया में देरी करने के लिए कहते हैं जब तक कि कोई अन्य इशारा विफल न हो जाए, तब तक यह खत्म नहीं हो जाता है। और दो नलियां उनके बीच एक समय अवधि होती हैं (नलियां = स्पर्श), इसलिए आपको इस समय की अवधि की आवश्यकता होती है। – Eiko
धन्यवाद, यह सही समझ में आता है! – Maddoxx