2012-03-20 9 views
7

के साथ UITouch ईवेंट को सुनना मैं एक कस्टम UIView बना रहा हूं और उस पर UITapGestureRecognizer जोड़ रहा हूं। मेरे पास टैप इशारा करने के लिए एक हैंडलर है। लेकिन साथ ही मैं अपने UIView को छूने के लिए चाहता हूं Began & स्पर्श किए गए तरीके। मैंने इशारा किया है पुनर्नवीनीकरणकर्ता: shouldReceiveTouch: विधि भी स्पर्श करती है लेकिन स्पर्श करता है बीज/स्पर्श करता है एंडेड विधियों को नहीं बुलाया जाता है। कोई सुराग क्यों?UIGouchureRecognizer

अपने कस्टम अंदर UIView

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)iGestureRecognizer shouldReceiveTouch:(UITouch *)iTouch { 
    return YES; 
} 

मेरे विचार नियंत्रक

MyCustomView aCustomView = [[[MyCustomView alloc] init] autorelease]; 
       UIGestureRecognizer *myGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)]; 
[aCustomView addGestureRecognizer:myGestureRecognizer]; 
       [myGestureRecognizer release]; 
+0

मुझे हमेशा यही लगता touchesBegan केवल मास्टर ViewController के दृष्टिकोण को लागू किया। – CodaFi

उत्तर

10

आप इशारा पहचानकर्ता के लिए NO को cancelsTouchesInView (और संभावना delaysTouchesBegan और delaysTouchesEnded) निर्धारित करने की आवश्यकता के अंदर। एक इशारा पहचानकर्ता का डिफ़ॉल्ट व्यवहार यह है कि यह दोनों स्पर्श और दृश्य को स्पर्श करने से बचें। ये सेटिंग्स आपको उस व्यवहार को सुदृढ़ करने देती हैं।

+0

मुझे यकीन है कि मैं उस व्यवहार को प्राप्त कर रहा हूं जिसका आप उल्लेख करते हैं। मैं डिफ़ॉल्ट सेटिंग्स का उपयोग कर रहा हूं, फिर भी मेरे स्पर्श विधियों को अभी भी बुलाया जाता है। मेरा प्रश्न यहां देखें: http://stackoverflow.com/questions/15869944/how-to-prioritize-gesture-recognizers-and-touches-in-a-uiview – johnbakers

+0

@RobNapier cancelsTouchesInView को मेरे मुद्दे से लिंक करने में विफल रहेगा : https://stackoverflow.com/questions/46170876/random-crash-on-pickerview-didselect-cfrunloop-is-calling-out-to-a-source1-p?noredirect=1#comment79305779_46170876 – user2363025

0

जैसा कि पहले बताया गया है, आपको प्रॉपर्टी को पर पर सेट करने की आवश्यकता है।

एप्पल डॉक्स से:

cancelsTouchesInView-तो एक इशारा पहचानकर्ता अपने हाव-भाव, यह उनके विचार से कि भाव के शेष छूता unbinds पहचानता है (ताकि खिड़की उन्हें वितरित नहीं होगा)। खिड़की पहले डिस्प्ले स्पर्श को रद्द कर देती है (स्पर्श किए गए: withEvent :) संदेश। यदि इशारा पहचानकर्ता अपने इशारे को नहीं पहचानता है, तो दृश्य को मल्टी-टच अनुक्रम में सभी स्पर्शों को प्राप्त होता है।

अतिरिक्त पठन: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIGestureRecognizer_Class/

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^