2013-01-12 15 views
23

क्या केवल UICollectionViewFlowLayout में पूरक दृश्य को पुनः लोड करने का कोई आसान तरीका है? मैं पूरी चीज को फिर से लोड नहीं करना चाहता हूं। क्या ऐसा करना संभव है?संग्रह में पूरक दृश्य को फिर से लोड करने के लिए कैसे देखें

उत्तर

22

प्रलेखन की समीक्षा करने के बाद, मुझे एक व्यक्तिगत पूरक दृश्य को पुनः लोड करने के बारे में निश्चित नहीं है, लेकिन आप UICollectionView में 1 या अधिक अनुभागों को अद्यतन करने के लिए reloadSections: का उपयोग कर सकते हैं। (documentation) तो जब एक अनुभाग शीर्ष लेख को अद्यतन करने की जरूरत है, आप कॉल कर सकते हैं:

ऑब्जेक्टिव-सी:

[self.collectionView reloadSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, 3)]]; 

स्विफ्ट:

self.collectionView?.reloadSections(IndexSet(0 ..< 3)) 

कौन सा होता है कॉल करने के लिए:

- (UICollectionReusableView *)collectionView: (UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { 

     //Place logic for handling update here... 
} 
+0

कई उत्तरों देखा, यह NSFetchedResultsController द्वारा समर्थित संग्रहदृश्य होने पर मेरे लिए सबसे अच्छा काम करता है। धन्यवाद – migs647

+0

@Vitalii, उद्देश्य-सी कोड (एक सरणी के बजाय एक सीमा के साथ) के लिए बेहतर निष्ठा के लिए मेरा संशोधन देखें। साथ ही, संग्रह दृश्य 'UICollectionViewFlowLayout' में एक वैकल्पिक है। –

5

यदि आप नियंत्रक से पूरक दृश्य का लेआउट या आकार बदलना चाहते हैं, तोका उपयोग करेंयदि आप केवल पूरक दृश्य को रीफ्रेश करना चाहते हैं, तो [supplementaryView setNeedsDisplay] का उपयोग करें। यदि पूरक दृश्य जटिल है और/या इसके आयामों को बदल देगा तो दोनों का उपयोग करें।