2011-02-09 12 views
12

के पीछे दृश्य पर क्लिक करें मेरे पास एक UIScrollView है जो स्पष्ट पृष्ठभूमि के लिए सेट है। स्क्रॉलव्यू के भाग में सामग्री है, लेकिन हिस्सा नहीं है (इसलिए यह इसके पीछे अन्य दृश्य दिखाता है)। मैं UIScrollView और MKMapView के माध्यम से क्लिक करने में सक्षम होना चाहता हूं, लेकिन केवल UIScrollView के पारदर्शी हिस्से के लिए।आईफोन: पारदर्शी UIScrollView

मैं कुछ कोड है जो मैं कैसे काम कर पाने के लिए समझने कोई वास्तविक कठिन समय चल रहा है मिल गया है:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    if (![self yourMethodThatDeterminesInterestingTouches:touches withEvent:event]) 
     [self.nextResponder touchesBegan:touches withEvent:event]; 
} 

कोई मदद कर सकता है मुझे एक दृष्टिकोण यह है कि करने के लिए एक स्पर्श घटना अग्रेषित करने के लिए कैसे आसपास मेरे मन लपेटो एक और दृश्य के पीछे? क्या मैं कॉल कर सकता हूं - (शून्य) स्पर्श करता हैगेगन: (एनएसएसएटी *) UIViewController से Event: (UIEvent *) ईवेंट के साथ छूता है?

+0

मजाकिया, मुझे बस विपरीत समस्या थी। मेरे स्पर्श कुछ कारणों से पारित किए जा रहे थे। मुझे एक मिनट दें और मैं देखूंगा कि क्या हो रहा है कि क्या हो रहा था। – jakev

+0

ठीक है, मेरी स्थिति वास्तव में प्रासंगिक नहीं है। आप क्या समझ में नहीं आता है? अगले संवाददाता को छूने से गुजरना उचित लगता है। – jakev

+0

मुझे लगता है कि मुझे अगले संवाददाता के बारे में कुछ भी पता नहीं है। मैं इस पर एक स्पर्श कैसे पारित करूंगा? –

उत्तर

7

हमने यूआईएसक्रोल व्यू को उप-वर्गीकृत करना और तर्क को लागू करना था जो पारदर्शी क्षेत्र के अंदर स्पर्श होता है।

हमारे मामले में पारदर्शी क्षेत्र, Y अक्ष पर 120 का contentOffset द्वारा परिभाषित किया गया है हमारे सामग्री अर्थ UIScrollView के शुरू होने से नीचे 120 अंक शुरू होता है, और कोड इस तरह दिखता है:

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    if (self.contentOffset.y < 0 && point.y < 0.0) { 
     return NO; 
    } else { 
     return YES; 
    } 
} 

जाहिर है यह प्रतिक्रिया अपने प्राइम से पहले अच्छी तरह से है लेकिन उम्मीद है कि यह किसी भी समाधान की खोज में मददगार होगा।

3

असल में, यह निर्धारित करने के लिए आप पर निर्भर है कि आप किस टच ईवेंट को किसी अन्य उत्तरदाता को आगे बढ़ाना चाहते हैं। यदि आप बस सभी स्पर्श ईवेंट को अग्रेषित करना चाहते हैं, तो बस आपके द्वारा पोस्ट किए गए कोड में if कथन को हटा दें ताकि अगला उत्तरदाता सभी स्पर्श ईवेंट प्राप्त कर सके।