मैं प्रोग्रामिंग के रूप में एक UICollectionView का उपयोग कर रहा हूं।FlowLAyout के साथ UICollectionView अनुभाग इन्सेट्स सेट करते समय स्क्रॉल नहीं करते
मैं निर्धारित किया है यह फ्रेम है इस प्रकार है:
flowLayout.sectionInset = UIEdgeInsetsMake(20.0, 20.0, 100.0, 20.0);
मैं भी केवल 1 अनुभाग है:
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 3000) collectionViewLayout:flowLayout];
मेरे UICollectionViewFlowLayout
एक वर्ग इनसेट के रूप में स्थापित है।
मैंने ऊंचाई दृश्य को स्क्रॉल करने के लिए 3,000 होने की ऊंचाई निर्धारित की है लेकिन यह नहीं है। मैं इसे उस पर सेट कर रहा हूं क्योंकि जब मैं नई वस्तुओं को सम्मिलित करता हूं तो संग्रह दृश्य ऊपर या नीचे स्क्रॉल नहीं लग रहा है।
UICollectionView
UIScrollView
से उप-वर्गीकृत है, जिसका अर्थ है कि मैं स्क्रॉल व्यू सामग्री आकार को रीसेट कर सकता हूं। क्या यह ठीक से काम करेगा?
एकमात्र मुद्दा यह है कि यह काम करेगा यदि मैं सभी वस्तुओं के आकारों को जानता हूं जिसमें प्रत्येक पंक्ति पर कितनी वस्तुएं हैं।
यदि प्रत्येक आइटम का एक अलग आकार होता है, तो मैं प्रत्येक पंक्ति का आकार कैसे प्राप्त करूं? मुझे सभी पंक्ति आकार जोड़ने और self.collectionView
की सामग्री आकार की ऊंचाई बढ़ाने की आवश्यकता होगी।
संपादित
यहाँ तक कि मेरे ऊपर सुझाव, सामग्री आकार को रीसेट, ठीक से काम नहीं करता है! मैंने अपने संग्रह दृश्य को अपडेट करते समय निम्नलिखित की कोशिश की:
int numberOfRows = self.dataArray.count/3;
self.collectionView.contentSize = CGSizeMake(self.view.frame.size.width, (numberOfRows * 200) + 300);
हालांकि यह बहुत बदसूरत है। ऐसा इसलिए है क्योंकि यह मानता है कि मेरी सभी छवियों का आकार 200x200px है, जो प्रति पंक्ति 3 छवियों को फिट करता है (इसलिए 3 से विभाजन)।
इसके अलावा, मेरे पास +300 के साथ भी, आखिरी पंक्ति में मैं केवल 3/4 देख सकता हूं और यह सब नहीं। मुझे और स्क्रॉल करना होगा और मैं इसे देख पाऊंगा लेकिन यह फिर से 3/4 तक वापस चला जाता है। रीफ्रेश करने के लिए स्क्रॉल की तरह इसकी तरह, जहां दृश्य केवल तभी चलता है जब आप इसे खींचते हैं और जब आप इसे छोड़ देते हैं तो उसे वापस जहां पर जाता है। ये क्यों हो रहा है? क्या यह ऐप्पल UICollectionView
इतना खराब डिजाइन किया गया है? यह थोड़ा हास्यास्पद है ... UITableViews अपनी स्क्रॉल को स्वचालित रूप से उनकी सामग्री के अनुसार समायोजित करता है।
यह मेरे लिए समाधान था। मैं एक कस्टम प्रवाह लेआउट का उपयोग कर रहा था जो बहु स्तंभ लेआउट में वस्तुओं के बीच लंबवत अंतराल को हटा देता था। जब तक साइमन ने सुझाव दिया था तब तक मुझे केवल आधे आइटम मिल रहे थे। मुझे संदेह है कि मेरे पास यह मुद्दा था कि पूछे गए आइटमों की संख्या मानक लेआउट पर आधारित है। –