2013-01-25 27 views
9

मैं हेडर को संग्रह दृश्य में सेट करना चाहता हूं, जैसे UITableViewController के सेटटेबलहेडर करता है।मैं पूरे शीर्षलेख दृश्य को UICollectionView पर कैसे सेट कर सकता हूं?

मैं संग्रह दृश्य पर प्रत्येक अनुभाग के हेडर स्थापित करने के लिए रास्ता मिल गया है, लेकिन मैं कैसे संपूर्ण शीर्ष लेख के शीर्षक दृश्य सेट करने लगता है नहीं कर सका।

ऐप्पल का यूआईसीओलेक्शन व्यूलाउट का संदर्भ कहता है "पूरक विचार डेटा प्रस्तुत करते हैं लेकिन कोशिकाओं से अलग होते हैं। कोशिकाओं के विपरीत, पूरक विचारों को उपयोगकर्ता द्वारा नहीं चुना जा सकता है। इसके बजाय, आप किसी दिए गए सेक्शन के लिए हेडर और फ़ूटर व्यू जैसी चीजों को लागू करने के लिए पूरक दृश्यों का उपयोग करते हैं। या पूरे संग्रह दृश्य के लिए। पूरक विचार वैकल्पिक हैं और उनका उपयोग और प्लेसमेंट लेआउट ऑब्जेक्ट द्वारा परिभाषित किया गया है। ", लेकिन मुझे नहीं पता कि पूरे संग्रह दृश्य के लिए हेडर व्यू को कैसे कार्यान्वित किया जाए।

मैं केवल प्रथम खंड के लिए एक अनुभाग शीर्ष लेख दृश्य आयत बनाकर इसे लागू करने की कोशिश की है, लेकिन यह tableHeader के उस के साथ अलग था।

तालिका दृश्य में, यदि मैं सामग्री शीर्षक के नीचे करने के लिए ऑफसेट निर्धारित करते हैं, सामग्री आकार स्वचालित रूप से इतना है कि शीर्ष लेख यद्यपि वहाँ कुछ तत्वों मौजूद छिपा हुआ है फैलता है।

लेकिन संग्रह दृश्य में, सामग्री ऑफसेट को संशोधित करना केवल ठीक काम करता है जब स्क्रॉल करने के लिए पर्याप्त तत्व मौजूद होते हैं।

मैं गतिशील सामग्री आकार का विस्तार करने जब वहाँ कुछ तत्वों मौजूद कोशिश की, लेकिन ऐसा लगता है कि यह ठीक से काम नहीं करता ...

+0

संभावित डुप्लिकेट [यूआईसीओलेक्शन व्यू में अनुपूरक दृश्य फ्लोट कैसे बनाएं, जैसा कि अनुभाग शीर्षलेख UITableView सादे शैली में करते हैं] (http://stackoverflow.com/questions/13511733/how-to-make- पूरक-view-float-in -इकोलिलेक्शनव्यू-ए-सेक्शन-हेडर-डू-i) – staticVoidMan

+0

@staticVoidMan यह डुप्लिकेट नहीं है। सावधानीपूर्वक एक प्रश्न पढ़ें। – dzensik

उत्तर

1

मैं इस एक कस्टम लेआउट का उपयोग कर और हर पुस्तक घटना पर हैडर का स्थान बदलने कार्यान्वित । UICollectionViewLayout उपवर्गीकरण के साथ शुरू करो, वहाँ वेब पर ट्यूटोरियल की टन कर रहे हैं, यह एक अच्छा एक है: http://markpospesel.wordpress.com/2012/10/25/fixing-circlelayout/

फिर चाल हमेशा shouldInvalidateLayoutForBoundsChange: को YES वापस जाने के लिए है, और prepareLayout पुन: में (यानी layoutAttributes 'फ्रेम बदल जाते हैं।) संग्रह दृश्य xOffset और yOffset के आधार पर शीर्षलेख।

NSIndexPath 0-0 के साथ एक पूरक दृश्य का उपयोग करें।

layoutAttributesForElementsInRect: प्रत्येक फ्रेम पर कॉल किया जाएगा, इसलिए यदि आपके संग्रह दृश्य में बहुत सारी चीज़ें हैं, तो आपको परिणाम कैश करने की आवश्यकता होगी ताकि यह प्रदर्शन को प्रभावित न करे। उस शीर्षलेख को छोड़कर सभी विशेषताओं को छूटा जाना चाहिए।

स्रोत: मैंने इस विशेष विषय पर 1 महीने काम किया।