2012-11-17 14 views
9

प्रवाह लेआउट और पेजिंग सक्षम के साथ UICollectionView पर विचार करें (pagingEnabledYES पर सेट करके)।आईओसी में पेजिंग के साथ UICollectionView की पृष्ठ गणना

पृष्ठों की कुल संख्या प्राप्त करने का सबसे आसान तरीका क्या होगा?

और पृष्ठों की कुल संख्या को अपडेट करने के लिए सबसे उपयुक्त स्थान कहां होगा (यदि आइटम जोड़े/हटाए गए हैं, तो संग्रह दृश्य परिवर्तन का आकार या लेआउट परिवर्तन) यह बदल सकता है?

उत्तर

6

UICollectionView स्क्रॉल क्षैतिज, आप अपनी contentSize 'इसके फ्रेम की चौड़ाई को रों चौड़ाई:

int pages = floor(self.collectionView.contentSize.width/ 
        self.collectionView.frame.size.width) + 1; 

यह खड़ी स्क्रॉल हैं, तो आप अपने contentSize विभाजित' विभाजित हैं:

int pages = floor(self.collectionView.contentSize.height/ 
        self.collectionView.frame.size.height) + 1; 
इसके फ्रेम की ऊंचाई को रों ऊंचाई
+4

मानती है कि कोई रिक्ति है कि वहाँ, और कहा कि सभी आइटम एक ही चौड़ाई या ऊंचाई की है। – hpique

+2

क्या आप 'मंजिल' पाने और 1 जोड़ने के बजाय 'ceil' का उपयोग नहीं कर सके? – swilliams

+4

'ceil' * अधिक * सटीक का उपयोग नहीं करेगा, क्योंकि यदि' content.width' और 'frame.size.width' बराबर हैं, तो तकनीकी रूप से केवल एक पृष्ठ होने पर, आप' 2' के साथ समाप्त होते हैं? –

5

सही जवाब होना चाहिए:

UICol हैं क्षैतिज lectionView स्क्रॉल:

int pages = ceil(self.collectionView.contentSize.width/ 
        self.collectionView.frame.size.width); 

यह खड़ी स्क्रॉल हैं: गणित और कंप्यूटर विज्ञान, फर्श और छत कार्यों में

:

int pages = ceil(self.collectionView.contentSize.height/ 
        self.collectionView.frame.size.height); 

पालन wiki को एक वास्तविक संख्या का नक्शा क्रमशः सबसे बड़े या सबसे छोटे पूर्णांक के लिए। अधिक सटीक, मंजिल (एक्स) एक्स और छत (x) से बड़ा नहीं है सबसे बड़ा पूर्णांक x से कम नहीं है।

यहाँ मेरी परिणाम की जाँच करने के लिए है:

ceil(2.0/5.0) = 1.000000 
ceil(5.0/5.0) = 1.000000 
ceil(6.0/5.0) = 2.000000 
ceil(10.0/5.0) = 2.000000 
ceil(11.0/5.0) = 3.000000 

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

  • कोई संबंधित समस्या नहीं^_^