2012-11-14 23 views
10

पर सेल पुन: उपयोग अक्षम करें मैं व्यक्तिगत ऐप पर इशारा पहचानकर्ताओं के साथ अपने ऐप में एक यूआईसीओलेक्शन व्यू का उपयोग कर रहा हूं जो उपयोगकर्ता को नीचे अधिक डेटा प्रकट करने के लिए सेल को "स्लाइड खोलने" की अनुमति देता है।UICollectionView

समस्या यह है कि, मैं संग्रह दृश्य में डेटा को फिर से लोड कर रहा हूं; क्योंकि ऐप को हर 3 सेकंड या तो एक बार अपडेट प्राप्त होते हैं। इसके परिणामस्वरूप संग्रह कक्षों का पुन: उपयोग किया जा रहा है, जबकि एक सेल स्लीड होने की प्रक्रिया में है।

उपयोगकर्ता एक सेल स्लाइड करना शुरू कर देगा, ऐप को एक अपडेट, रीलोड लोड, और एक अलग सेल इशारा प्राप्त करना शुरू कर देगा, और स्लाइडिंग शुरू कर देगा।

मैंने स्लाइड होने के दौरान ऐप के अपडेट को अक्षम करने का प्रयास किया है, लेकिन इससे ऐप के भीतर अन्य जटिलताओं का कारण बन गया है, इसलिए मैं सोच रहा हूं कि सेल पुन: उपयोग को अक्षम करने का कोई तरीका है, (मेरे पास केवल 20 सेल्स अधिकतम होंगे, इसलिए मुझे नहीं लगता कि प्रदर्शन में बड़ी गिरावट होगी)।

धन्यवाद!

+1

क्या आप बस पुनः लोडडेटा को कॉल कर रहे हैं? क्या होता है यदि आप केवल विशिष्ट कोशिकाओं को फिर से लोड करते हैं, उदा। उन सभी को छोड़कर जिन्हें संचालित किया जा रहा है? – jrturton

उत्तर

2

आप needsReload जैसे ध्वज का उपयोग क्यों नहीं करते हैं और यदि नया डेटा उपलब्ध है, तो इसे सेट करें। एक स्लाइड के बाद आप उस ध्वज की जांच करें और संग्रह की आवश्यकता को फिर से लोड करें, यदि आवश्यक हो? क्या यह काम नहीं कर रहा है?

यदि आप सेल पुन: उपयोग नहीं करना चाहते हैं, तो बस एक डिफ़ॉल्ट स्क्रॉल व्यू का उपयोग करें और अपने सभी विचार इसमें डाल दें !?

-5

पुन: उपयोग अक्षम करना सरल है। बस dequeueReusableCell विधि का उपयोग न करें। इसके बजाए बस अपनी कोशिकाओं को आवंटित करें। मैं ऐसा करने के प्रदर्शन और स्मृति प्रभावों से सावधान रहूंगा ...

+0

मैंने कोशिश की है कि, मैं फिर भी कई कोशिकाओं मैं जरूरत के साथ एक सरणी भरा है, और cellForRowAtIndexPath में मैं डाल: 'MyCustomCell * सेल = [self.arrayOfCells objectAtIndex: indexPath.row];' लेकिन एप्लिकेशन निम्नलिखित में क्रैश त्रुटि। '*** में सम्मिलन विफलता - [UICollectionView _createPreparedCellForItemAtIndexPath: withLayoutAttributes:]' – dKrawczyk

+0

@dKrawczyk: क्या आप पूरा त्रुटि संदेश दिखा सकते हैं? –

+0

'*** में सम्मिलन विफलता - [UICollectionView _createPreparedCellForItemAtIndexPath: withLayoutAttributes:], /SourceCache/UIKit_Sim/UIKit-2372/UICollectionView.m: 1138' – dKrawczyk

संबंधित मुद्दे