सबव्यू पर मूल दृश्य से स्पर्श प्राप्त करना अक्षम करें

मेरे पास UIView parentView है जो UITapGuestureRecognizer लागू करता है और टैप होने पर कुछ करता है। parentView में एक उप दृश्य है जिसे childView कहा जाता है जो एक UITapGuestureRecognizer लागू करता है और टैप होने पर कुछ करता है।

एक उदाहरण है जब मुझे थोड़ी देर के लिए एनीमेशन के दौरान childViews UITapGestureRecognizer को बंद करना होगा, और मैंने देखा कि यह बंद होने पर और मैं childView को टैप करता हूं , टैप को parentView द्वारा अवरुद्ध किया जाता है। इसके अलावा, मेरे पास इस दृश्य के शीर्ष से जुड़ा टूलबार है जिसमें इसके साथ जुड़ा कोई इशारा पहचानकर्ता नहीं है, और यह स्पर्श पारित हो जाता है देखें (बटन मुश्किल से काम करेंगे)। मुझे आश्चर्य है कि माता-पिता UITapGestureRecognizer के संदर्भ के बिना इसे अक्षम करना संभव है?

मैंने अनन्य टच UIView की संपत्ति को हाँ पर सेट करने का प्रयास करने का प्रयास किया है और यह काम नहीं करता है। किसी भी सुझाव की सराहना की जाएगी।

14
जोड़ा संपादित
विचारों: 1

2 उत्तर

अभिभावक इशारा पहचानकर्ताओं में, UIGestureRecognizerDelegate को लागू करें, और निम्न विधि को लागू करें:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{
    if ([touch.view isKindOfClass:[ClassThatYouWantTouchesBlocked class]]) 
    {
        return NO;
    }
    else 
    {
        return YES; 
    }
}

उस वर्ग के साथ ClassThatYouWantTouchesBlocked को बदलें जिसे आप अपने स्पर्शों को अनदेखा करना चाहते हैं।

24
जोड़ा

क्या होगा यदि ChildView के टैप जेस्चर पहचानकर्ता कभी भी बंद न करें ? अगर यह कुछ भी किए बिना बच्चे के टैप जेस्चर विधि से वापसी एनिमेट कर रहा है।

यदि यह isAnimating की तुलना में imageView है, तो संपत्ति उपयोग में आ सकती है।

1
जोड़ा
प्रयास वारिफ लेकिन डाउनवॉटेड की सराहना करें क्योंकि यह सवाल का जवाब नहीं दे रहा है, यह समस्या कथन को बदलने की कोशिश कर रहा है। और @ कथुतू, मैं कहूंगा कि आप stackoverflow.com पर थोड़ी अधिक उत्तेजना के लिए अधिक उत्साहित हैं क्योंकि मैंने व्याख्या नहीं की थी।
जोड़ा लेखक Ser Pounce, स्रोत
वारिफखंड ऋषि - आमतौर पर यदि आप जानकारी इकट्ठा करना चाहते हैं तो टिप्पणी अनुभाग में बेहतर कहा जाता है। जहां तक ​​बच्चे को बदलना टैपगेशर रिकॉग्नाइज़र बंद कर देता है, क्षमा करें अगर यह स्पष्ट नहीं था, लेकिन यह ऐसा कुछ है जो एक विकल्प नहीं है, तो मुझे इसे इस तरह से रखना होगा। लेकिन फिर भी मुझे लगता है कि यह समस्या कथन में बदलाव है, न कि एक जवाब। वैसे भी, असहमत होने के लिए सहमत हैं, और आपको भावनात्मक नहीं होने और नामकरण का सहारा लेने की सराहना करते हैं, कुछ अन्य लोगों के विपरीत @Cthutu
जोड़ा लेखक Ser Pounce, स्रोत
वैध जवाब - मैं ऊपर उठाऊंगा। जो स्पष्टीकरण के बिना डाउनवोट करते हैं वे stackoverflow.com पर एक धड़कन हैं।
जोड़ा लेखक Cthutu, स्रोत
नहीं, मैंने ऊपर उठाया क्योंकि मैंने सोचा था कि यह वैध जवाब था, बावजूद नहीं। मैंने सोचा कि मेरी टिप्पणी में "मान्य जवाब" से स्पष्ट था। वारिफ़ बॉक्स से बाहर सोच रहा था और यह सराहनीय है। आप अपने प्रश्नों के उत्तर देने के लायक नहीं हैं।
जोड़ा लेखक Cthutu, स्रोत
मैं उन लोगों के समूह का वर्णन कर रहा था जो स्पष्टीकरण के बिना डाउनवोट करते थे। यह अनुपयोगी, नैतिकता और SO की उपयोगिता को कम करता है। हालांकि, यह आप थे कि पहले व्यक्तिगत मिला। आपको समझाया जाना चाहिए कि बच्चे को बंद करना टैप जेस्चरर रिकॉग्नाइज़र अनामिक रूप से डाउनवॉटिंग के बजाय टिप्पणियों में एक विकल्प नहीं था।
जोड़ा लेखक Cthutu, स्रोत
क्या मुझे पता चलेगा क्यों वोट नीचे?
जोड़ा लेखक Warif Akhand Rishi, स्रोत
@CoDEFRo मुझे लगता है कि लोग सिर्फ "मतदान" के लिए उत्तर नहीं देते हैं। वे जानकारी इकट्ठा करना चाहते हैं और दूसरों की मदद करने की भावनाएं चाहते हैं। आपने कभी नहीं कहा कि आप अपने प्रश्न में ऐसा क्यों कर रहे हैं "मुझे बच्चे के दृश्य UITapGestureRecognizer को बंद करना होगा।" मैं सुझाव दे रहा था कि क्या बच्चे को टैप करें चालू । तो जेश्चर बच्चे के दृश्य के बावजूद यात्रा नहीं करते हैं।
जोड़ा लेखक Warif Akhand Rishi, स्रोत
@Cthutu बहुत बहुत धन्यवाद। अलग-अलग लोग अलग-अलग सोचते हैं। लेकिन मैं दृढ़ता से आपसे सहमत हूं कि लोगों को स्पष्टीकरण होना चाहिए।
जोड़ा लेखक Warif Akhand Rishi, स्रोत