2013-05-02 8 views
5

मेरे पास एक UICollectionView है जो फ़्लो लेआउट का उपयोग करके इसकी कोशिकाओं को बाहर रखता है। यह लंबवत स्क्रॉलिंग है।UICollectionView सेल लेआउट संग्रह दृश्य की सीमाओं से बाहर है

यह 320x480 स्क्रीन भरता है और एक कस्टम यूआईसीओलेक्शन व्यूसेल प्रदर्शित करता है जो हमेशा 96 * 96 होता है - आकार इंटरफ़ेस बिल्डर में सेट होता है और प्रतिनिधि प्रति आइटम आधार पर आइटम आकार सेट करने के तरीकों को लागू नहीं करता है।

बाएं और दाएं पर इन्सेट हैं जो प्रत्येक 10 पिक्सल हैं और न्यूनतम रिक्ति 6px पर सेट है।

इसलिए क्षैतिज रेखा प्रति 3 कोशिकाएं होती हैं।

< -10-> < ---- 96 ----> < -6-> < ---- 96 ----> < -6-> < ---- 96 --- -> < -10-> = 320.

मेरी समस्या यह है कि कभी-कभी यह एक पंक्ति पर 4 कोशिकाओं को देता है! चौथा सेल ज्यादातर स्क्रीन से बाहर है। इसके बाद यह क्षतिपूर्ति के लिए निम्नलिखित पंक्ति पर केवल 2 कोशिकाओं को बाहर रखता है। प्रवाह लेआउट का पूरा बिंदु यह है कि यह एक लाइन ब्रेकिंग लेआउट है जिसे कुछ भी ऑफ-स्क्रीन नहीं डालना चाहिए!

मैं एक तस्वीर संलग्न किया है:

enter image description here

कृपया ध्यान दें दूसरी पंक्ति पर है कि वहाँ एक चौथी आइटम ज्यादातर स्क्रीन बंद है।

मुझे वास्तव में पता नहीं है कि इसका कारण क्या हो सकता है। कोशिकाओं गतिशील रूप से डेटा से भरे हुए हैं लेकिन उनका आकार स्थिर है। अन्य सभी पंक्तियों पर कोशिकाएं ठीक से ठीक हैं इसलिए ऐसा कुछ कारण नहीं है कि कुछ पंक्तियों पर ऐसा क्यों होना चाहिए।

यह त्रुटि संग्रह दृश्य अद्यतन होने पर प्रत्येक बार विभिन्न स्थानों पर होती है। अर्थात। यह पंक्ति 2 पर हो सकता है तो एक बार अपडेट होने पर यह पंक्ति 10 पर हो सकता है और इसी तरह।

संग्रह दृश्य को टाइमर द्वारा अपडेट किया जा रहा है। टाइमर अनिवार्य रूप से एक फ़ंक्शन को कॉल करता है जो कुछ डेटा को संसाधित करता है, और उसके बाद dispatch_async (मुख्य कतार पर) का उपयोग करके बैकिंग डेटा युक्त एक सरणी अद्यतन होती है और [संग्रह दृश्य पुनः लोडडाटा] कहा जाता है। तो मैंने मुख्य धागे के अलावा किसी भी धागे से संग्रह दृश्य को अद्यतन नहीं किया है। बैकिंग सरणी केवल मुख्य कतार और उस फ़ंक्शन में अपडेट की जाती है; कहीं और से नहीं।

कृपया कोई मुझे कुछ सुझाव दे सकता है कि क्या गलत हो रहा है।

धन्यवाद

उत्तर

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