2011-12-06 18 views
10

मुझे कैसे पता चलेगा कि उंगली कब नीचे है और यह UITapGestureRecognizer के साथ कब है?
documentation का कहना है कि मुझे केवल UIGestureRecognizerStateEnded को टैप के रूप में संभालना चाहिए, इसलिए इसका मतलब है कि उंगली नीचे होने पर UIGestureRecognizerStateBegin है, लेकिन मुझे लगता है कि UIGestureRecognizerStateEnded है।
कोड मैं पहचानकर्ता रजिस्टर करने के लिए उपयोग करते हैं:उंगली ऊपर/नीचे UITapGestureRecognizer

[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)] 
+0

आप एक ही समस्या के लिए इस लिंक की जाँच है, तो यह एक सौंदर्य है: [guides.codepath.com] (https://guides.codepath.com/ios/Using-Gesture-Recognizers#programmatically-add -और कॉन्फ़िगर एक इशारे-पहचानकर्ता) – MoVod

उत्तर

18

UITapGestureRecognizer एक असतत इशारा पहचानकर्ता है, और इसलिए कभी नहीं शुरू हुआ या बदल राज्यों को संक्रमण। UIGestureRecognizer कक्षा संदर्भ से: संभव से या तो मान्यता प्राप्त (UIGestureRecognizerStateRecognized) को

असतत इशारों संक्रमण या विफल (UIGestureRecognizerStateFailed), चाहे वे सफलतापूर्वक इशारा व्याख्या या नहीं पर निर्भर करता है। यदि इशारा पहचानकर्ता पहचानने के लिए संक्रमण, तो यह अपने कार्य संदेश को अपने लक्ष्य में भेजता है।

(निश्चित रूप से याद रखना कि UIGestureRecognizerStateRecognized == UIGestureRecognizerStateEnded)।

दस्तावेज़ कह रहे हैं कि आपको टैप इशारा पहचानकर्ता की स्थिति की जांच करनी चाहिए ताकि यह देखने के लिए कि यह आपके कोड को आग लगने से पहले कि यह पहचान लिया गया है। वे यह नहीं कह रहे हैं कि टैप इशारा वास्तव में शुरू या परिवर्तित राज्यों में संक्रमण (हालांकि मैं स्वीकार करता हूं कि दस्तावेज़ भाषा में थोड़ा भ्रामक हैं!)।

यदि आप टैप इशारा पहचानकर्ता के लिए उंगली के नीचे की घटना की जांच करना चाहते हैं, तो मैं केवल touchesBegan:withEvent: का उपयोग करने की अनुशंसा करता हूं, क्योंकि यह वैसे भी है जो आप वास्तव में कर रहे हैं।

1

आप प्रतिनिधि विधि -(BOOL)gestureRecognizer:shouldReceiveTouch: पर ओवरराइड कर सकते हैं।

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { 
    NSLog(@"Hello from press down"); 

    return YES; 
} 
संबंधित मुद्दे