2009-05-26 18 views
8

मैंने अभी तक यह कोशिश नहीं की है, लेकिन मुझे लगता है कि जैसे ही मुझे पता है कि उपयोगकर्ता बाल स्क्रॉल दृश्य में स्क्रॉल करना चाहता है, मुझे लगता है कि मुझे मूल स्क्रॉल दृश्य की स्क्रॉलिंग अक्षम करनी होगी, है ना?मैं UIScrollView के अंदर UIScrollView को कैसे घोंसला कर सकता हूं, ताकि उपयोगकर्ता आंतरिक UIScrollView को स्क्रॉल कर सके?

दोनों स्क्रॉल दृश्य क्षैतिज स्क्रॉल कर रहे हैं।

मैं अस्थायी रूप से माता-पिता की स्क्रॉलिंग पहचान को कैसे अक्षम कर सकता हूं? या क्या कोई और तरीका है?

उत्तर

9

UIScrollView में scrollEnabled नामक एक संपत्ति है, जिसे आप अपने पेरेंट स्क्रॉल व्यू में स्क्रॉलिंग अक्षम करने के लिए NO पर सेट कर सकते हैं।

मैंने अभी तक यह कोशिश नहीं की है, लेकिन आप पाते हैं कि यह सही चीज करता है, यानी, आंतरिक स्क्रॉल व्यू स्क्रॉल तब तक स्क्रॉल नहीं करता जब तक कि वह स्क्रॉल नहीं कर लेता है, उस बिंदु पर बाहरी स्क्रॉल व्यू स्क्रॉल।

+0

हाय हैटफिनच, मुझे आश्चर्य है कि मैं डिफ़ॉल्ट व्यवहार को कैसे रोक सकता हूं "आंतरिक स्क्रॉल व्यू स्क्रॉल जब तक यह स्क्रॉल नहीं कर सकता है, उस समय बाहरी स्क्रॉल व्यू स्क्रॉल"? मेरी इच्छा है कि जब उपयोगकर्ता आंतरिक दृश्य को स्क्रॉल करता है, बाहरी दृश्य रह सकता है, भले ही आंतरिक दृश्य अंत तक स्क्रॉल हो। – Hampotato

+0

आप आंतरिक स्क्रॉल व्यू पर प्रतिनिधि कॉलबैक के लिए पंजीकरण कर सकते हैं, बाहरी स्क्रॉल व्यू पर स्क्रॉलिंग को अक्षम करते समय आंतरिक आंतरिक स्क्रॉलिंग शुरू कर देता है, और जब आंतरिक आंतरिक गति समाप्त हो जाता है तो इसे पुन: सक्षम कर सकता है। – hatfinch

+0

मैं देखता हूं, बहुत बहुत धन्यवाद! – Hampotato

0

मैं इस किया था और उसे अपने जनक scrollview अब और स्क्रॉल करने के लिए नहीं है जो ठीक लेकिन मेरे बच्चे scrollview जो presentModalViewController के माध्यम से धक्का दे दिया गया था अभी भी घटनाओं स्क्रॉल करने के लिए जवाब नहीं है (उदाहरण के लिए ऊपर या नीचे स्क्रॉल) है कारण है। मुझे स्पष्ट रूप से कुछ याद आ रहा है ...

EDIT: इसे मूल दृश्य पर 'scrollEnabled' का उपयोग करके अंत में काम करने के लिए मिला। धन्यवाद।

0

मैं जब तक मैं भीतरी scrollview की contentSize को गतिशील रूप से काफी ऊंचाई सेट यह एक ही समस्या थी, का उपयोग करते हुए:

[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width,600)]; 

जाहिर है यह सिर्फ एक हार्डकोडेड उदाहरण है, आप ऊंचाई पूरे प्रदर्शित करने के लिए की जरूरत है स्थापित करना चाहिए दृश्य की सामग्री, और अंत में कोई स्क्रॉल की आवश्यकता नहीं है।

ऐसा लगता है कि आईबीइल्डर का उपयोग करके स्क्रॉल व्यू की ऊंचाई निर्धारित करना पर्याप्त नहीं है, इसलिए कोई स्क्रॉल की आवश्यकता नहीं थी और इसलिए मैं सोच रहा था कि स्वीप घटना आंतरिक स्क्रॉल तक नहीं पहुंच रही थी।

आशा है कि इससे मदद मिलती है!

1

यह बहुत संभव है। scrollEnabled संपत्ति को अक्षम करने का सबसे आसान तरीका है, आप बाहरी UIScrollView के contentSize को अपनी सीमाओं पर सेट करने का प्रयास भी कर सकते हैं, ताकि यह स्क्रॉल न हो। आपको जिस चीज की आवश्यकता है उसके आधार पर, आप bounce पर भी सेट कर सकते हैं लेकिन यह मूल रूप से आपके स्क्रॉल व्यू को नियमित UIView की तरह बना देगा।

आप सभी बच्चे पर नियंत्रण है, तो UIScrollView की, आप UIScrollViewDelegate प्रोटोकॉल को लागू कर सकते हैं, लेकिन यदि आप नहीं करते हैं, या अपने बच्चे UIScrollView वास्तव में एक UITableView, या UICollectionView है, तो आप वास्तव में UIScrollViewDelegate भरोसा नहीं कर सकते प्रोटोकॉल, लेकिन UIScrollViewpanGestureRecognizer के साथ आता है और आप इसके साथ खेल सकते हैं। एक शक्तिशाली लेकिन भारी हाथ तरीका panGestureRecognizer की state संपत्ति पर एक पर्यवेक्षक जोड़ना है ताकि आप UIScrollView के प्रतिनिधि के बिना सभी घटनाओं को कैप्चर कर सकें।