ले जाया नहीं किया जा सकता UICollectionView
सजावट में और अनुपूरक बार देखा गया एक बड़ा रहस्य होने लगते हैं। इस समय कोई उदाहरण कोड के बगल में प्रतीत होता है। मैं कस्टम लेआउट में दोनों प्रकार के काम करने में कामयाब रहा (कुछ विवरणों के लिए यह post देखें)। जब तक वे एक ही स्थिति में रहते हैं तब तक सब ठीक है (यानी यदि उनके layoutAttributes.frame
नहीं बदलते हैं)।UICollectionView सजावट और पूरक विचारों
हालांकि जैसे ही मैं सजावट या पूरक विचारों के लिए layoutAttributes
बदलकर बदलता हूं, वे दृष्टि से डुप्लिकेट प्राप्त करते हैं - यानी पृष्ठभूमि में उनकी मूल स्थान पर एक प्रतिलिपि होती है और उनकी प्रतिलिपि एक प्रतिलिपि होती है। व्यवहार समान है यदि मैं उन्हें XIB से पूरी तरह से या कोड में पूरी तरह से चालू करता हूं और व्यवहार सामान्य कोशिकाओं के लिए नहीं होता है।
पहले मैंने सोचा कि यह किसी प्रकार की रेड्रो समस्या है, लेकिन ये "प्रतियां" पुनः लेआउटिंग, रीड्रॉइंग इत्यादि से बचती हैं। हालांकि असली प्रतियां नहीं हैं, क्योंकि layoutAttributesForDecorationView
इत्यादि के लिए कभी नहीं कहा जाता है (केवल नए स्थान)। UICollectionView
में पृष्ठभूमि में कुछ कैशिंग लगती है।
किसी को भी इस काम के मिल गया या किसी विचार है है। मुझे यह कहना होगा कि मैं आईओएस मंच के लिए नया हूं, इसलिए यह "क्लिप बाउंड" या "साफ़ ग्राफिक्स संदर्भ" गुणों को सेट करने जैसी सरल चीजें भी हो सकती है (मैंने उनको आजमाया, लेकिन यह कुछ समान हो सकता है)।
यह मुझे पागल गाड़ी चला रहा है और यह वहाँ बिल्कुल कोई उदाहरण कोड है कि अजीब है।
मैं अपने आप को पूछ रहा हूँ: क्या सजावट और अनुपूरक विचारों मतलब नहीं पुनर्निर्धारित किए जाने की? (मुझे उम्मीद नहीं है)
आपकी तरह की समस्या। मैं उन्हें पुनर्स्थापित नहीं करता हूं, फिर भी संग्रह दृश्य पर बैच अपडेट करते समय उन्हें डुप्लिकेट किया जाएगा। – YuAo
बस FYI यह प्रकट नहीं होता है अगर आप PerformBatchUpdates को कॉल नहीं करते हैं या यदि आप MoveVtem के साथ नहीं खेलते हैं, तो SendVem से हटाएं या डालें Item। लेकिन आप किसी भी एनीमेशन को खो देते हैं ... – foOg
मैं वही चीज़ देख रहा हूं - लेकिन डेटा को फिर से लोड करने पर, रिलाउट करने पर नहीं। मैंने सब कुछ साफ़ करने के लिए अपने कस्टम सेल में प्रीपेयर फोरर्यूज लागू किया है, लेकिन फिर भी डुप्लिकेट डेटा देखें (नया डेटा पुराने पर ओवरलैड हो जाता है)। – StephenT