/ / इशारे पहचानकर्ता को अक्षम करें - उद्देश्य- c, xcode, uigesturerecognizer, swipe

इशारा पहचानकर्ता को अक्षम करें - उद्देश्य-सी, एक्सकोड, uigesturerecognizer, स्वाइप करें

मेरे पास दो प्रकार के पहचानकर्ता हैं, एक टैप के लिए और एक स्वाइप के लिए

UIGestureRecognizer *recognizer;

//TAP
recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(numTap1:)];
[(UITapGestureRecognizer *)recognizer setNumberOfTouchesRequired:1];
[self.view addGestureRecognizer:recognizer];
self.tapRecognizer = (UITapGestureRecognizer *)recognizer;
recognizer.delegate = self;
[recognizer release];

//SWIPE RIGHT
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)];
self.swipeRightRecognizer =(UISwipeGestureRecognizer *)recognizer;
swipeRightRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
[self.view addGestureRecognizer:swipeRightRecognizer];
self.swipeRightRecognizer = (UISwipeGestureRecognizer *)recognizer;
[recognizer release];

इस फ़ंक्शन के साथ मैं कुछ ऑब्जेक्ट पर टैप को अक्षम कर सकता हूं।

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

if ((touch.view == loseView) || (touch.view == subBgView) || (touch.view == btnAgain)) {

return NO;
}

return YES;
}

मैं स्वाइप को कैसे अक्षम कर सकता हूं?

आपका बहुत बहुत धन्यवाद!

उत्तर:

उत्तर № 1 के लिए 111

UIGestureRecognizer नाम की एक संपत्ति है enabled। यह आपके स्वाइप को अक्षम करने के लिए पर्याप्त होना चाहिए:

swipeGestureRecognizer.enabled = NO;

उत्तर № 2 के लिए 17

क्यों आप स्वाइप जेस्चर पहचानकर्ता के लिए प्रतिनिधि को सेट नहीं करते हैं और उन्हें उसी प्रतिनिधि विधि के भीतर संभालते हैं।

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ( [gestureRecognizer isMemberOfClass:[UITapGestureRecognizer class]] ) {
// Return NO for views that don"t support Taps
} else if ( [gestureRecognizer isMemberOfClass:[UISwipeGestureRecognizer class]] ) {
// Return NO for views that don"t support Swipes
}

return YES;
}

जवाब के लिए 0 № 3

मेरा भी वही मुद्दा है। मेरे कुछ अक्षम उपयोगकर्ता उसी समय टैप और स्वाइप करते हैं, इसलिए ऐप अगली स्क्रीन पर चला जाता है। मैंने उन्हें तीन-उंगलियों वाले नल का उपयोग करने की अनुमति देने के लिए एक विकल्प स्थापित किया। मुझे पॉपओवरकंट्रोलरडीडडिस्मिसपॉपवर प्रतिनिधि और जब ऐप पहली बार शुरू होता है, तो विकल्प को लागू करना होगा। इसलिए मैंने एक विधि लिखी जो उपरोक्त उत्तरों को जोड़ती है। यह सभी स्वाइप जेस्चर पहचानकर्ताओं के लिए दिखता है और उन्हें बंद कर देता है, फिर मेरे टैप जेस्चर पहचानकर्ता को चालू करता है।

- (void)changeGestureRecognizer {
// Three finger tap to move to next screen
if ([Globals sharedInstance].useDoubleTapToMoveToNextScreen) {

// Let’s see which gestures are active and turn off the swipes
for (UIGestureRecognizer *gestureRecognizer in self.view.gestureRecognizers) {
NSLog(@"The gestureRecognizer is %@", gestureRecognizer);
if ( [gestureRecognizer isMemberOfClass:[UISwipeGestureRecognizer class]] ) gestureRecognizer.enabled = NO;
}
// Add the three finger tap
UITapGestureRecognizer *twoFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeNext)];
[twoFingerTap setNumberOfTapsRequired:1];
[twoFingerTap setNumberOfTouchesRequired:3];
[self.view addGestureRecognizer:twoFingerTap];

}
}