क्या किसी को पता है कि संग्रह दृश्य प्रदर्शित होने पर UICollectionView को फिर से लोड/रीफ्रेश कैसे करें? असल में मैं UITableview के लिए मानक रीलोडडेटा विधि के समान कुछ ढूंढ रहा हूं।एक UICollectionview को रीफ्रेश करना
उत्तर
तुम बस [self.myCollectionView reloadData];
व्यक्तिगत वर्गों और वस्तुओं कॉल कर सकते हैं भी पुनः लोड किया जा सकता है:
[self.myCollectionView reloadSections:indexSet];
[self.myCollectionView reloadItemsAtIndexPaths:arrayOfIndexPaths];
WFIW मेरा मानना है कि लोग इस पर क्यों आ रहे हैं क्योंकि उनका उपयोग [myTableView reloadData] को कॉल करने के लिए किया जाता है लेकिन UICollectionViews के साथ आपको [myCollectionView.collectionView reloadData] को कॉल करना होगा। – capikaw
[self.myCollectionView reloadData]; केवल एक बार कॉल करें। सभी डेटा फिर से लोड करना चाहते हैं। –
[self.collectionView reloadData];
हालांकि यह वास्तव में वांछित परिणाम प्राप्त करेगा, reloadData का उपयोग करके सभी कोशिकाओं को दोबारा हटा देता है और प्रदर्शन को प्रभावित कर सकता है। – DrunkenBeard
कोई अच्छा विचार नहीं है, क्योंकि पूर्ण तालिका को पुनः लोड करने से आपको खराब परफॉर्मेंस मिलता है और ऊर्जा खींची जाती है। – Karsten
सही और सबसे अच्छा तरीका है
NSMutableArray *indexPaths = [NSMutableArray array];
//prepare some data
//batchupdate as block
[self.collectionView performBatchUpdates:^{
//operations like delete
[self.collectionView deleteSections:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, count)]];
[self.collectionView insertItemsAtIndexPaths:indexPaths];
} completion:^(BOOL finished) {
// call something when ready
}
}];
उपयोग करने के लिए है और सभी precomputed हो जाता है एक अच्छी तरह से एनिमेटेड । सर्वोत्तम अभ्यास है कि विवादों से बचने के लिए पहले सभी तत्वों को हटाने और जोड़ने के लिए।
आपने मेरा दिन बचाया! धन्यवाद –
शायद मैं गलतफहमी कर रहा हूं, लेकिन UICollectionView reloadData लागू करता है। – danh