मैं निम्नलिखित प्राप्त करना चाहता हूं।एक UIView बनाना जो नल को कैप्चर करता है, लेकिन अन्य सभी संकेतों के लिए पारदर्शी है
परिदृश्य: उपयोगकर्ता आईओएस कीबोर्ड ऑन-स्क्रीन है जबकि उपयोगकर्ता किसी विशेष टेक्स्ट फ़ील्ड में टाइप कर रहा है। कुंजीपटल को खारिज करने के लिए उपयोगकर्ता कीबोर्ड और टेक्स्ट फ़ील्ड के बाहर कहीं भी टैप कर सकता है (दिखाई देने वाले किसी भी बटन को सक्रिय किए बिना)। इसके अलावा, उपयोगकर्ता कीबोर्ड के बाहर ड्रैग खींच सकता है और स्क्रॉल करने योग्य दृश्यों की कुछ व्यवस्था पर सामान्य ड्रैग व्यवहार का निरीक्षण कर सकता है।
वैचारिक रूप से, मैं एक "कवर" UIView
स्क्रीन के अधिकांश हिस्से में जो बर्ताव रखकर कर रहा हूँ ऐसा है कि: उपयोगकर्ता कवर पर टैप करता
है, तो मुझे लगता है कि नल पर कब्जा (ताकि मैं , उदाहरण के लिए, कीबोर्ड को खारिज करें)।
UIView
सबक्लास में टैप इवेंट्स को अवरुद्ध करके या टैप जेस्चर पहचानकर्ता का उपयोग करके हासिल करना आसान है।उपयोगकर्ता कवर पर खींच लेता है, तो कवर या आगे इन छूता है पर ध्यान नहीं देता; इन्हें परतों के नीचे प्राप्त किया जाता है जैसे वे कवर के बिना होते।
तो: उपयोगकर्ता कवर के नीचे सामग्री को स्क्रॉल करने में सक्षम होना चाहिए, लेकिन कवर के नीचे सामग्री टैप नहीं करना चाहिए। कीबोर्ड और टेक्स्ट फ़ील्ड के "बाहर" टैप को कीबोर्ड (और कवर) को खारिज कर देना चाहिए, लेकिन कुछ भी सक्रिय नहीं करना चाहिए।
मैं इसे कैसे प्राप्त कर सकता हूं?
आपको छूने के लिए विधि के तरीके को लागू करने पर विचार करना होगा और स्वाइप करने के लिए इसके पीछे के विचारों के स्पर्शों को पार करना होगा। '- (शून्य) स्पर्श करता हैगान: (एनएसएसएटी *) के साथ छूता है: (UIEvent *) घटना { [अन्य दृश्य स्पर्श करेंगन: स्पर्श के साथ स्पर्श: घटना]; } 'एक और तरीका लागू करना है, UIPanGestureRecognizer और सेट cancelsTouchesInView = YES' UIPanGestureRecognizer * gr = [[UIPanGestureRecognizer alloc] initWithTarget: self action: @selector (handlePan)]; [gr setCancelsTouchesInView: YES]; [myButton addGestureRecognizer: gr]; [जीआर रिलीज]; ' – iDev
@ एमजेएच, क्या आपको कभी इसका समाधान मिला? – kpozin