जब दृश्य उपयोगकर्ता को दिखाई देता है, तो मुझे उपयोग किए जाने से पहले संग्रहित दृश्य लोड होने पर मुझे सभी दृश्य कक्षों पर कुछ कार्रवाई करने की आवश्यकता थी:
public func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
if shouldPerformBatch {
self.collectionView.performBatchUpdates(nil) { completed in
self.modifyVisibleCells()
}
}
}
ध्यान दें कि यह संग्रह दृश्य के माध्यम से स्क्रॉल करते समय कहा जाएगा, इसलिए इस ओवरहेड को रोकने के लिए, मैंने कहा:
private var souldPerformAction: Bool = true
और कार्रवाई में ही:
private func modifyVisibleCells() {
if self.shouldPerformAction {
// perform action
...
...
}
self.shouldPerformAction = false
}
प्रारंभिक अवस्था में दृश्य कोशिकाओं की संख्या के रूप में कार्रवाई अभी भी कई बार की जाएगी। लेकिन उन सभी कॉल पर, आपके पास दृश्यमान कोशिकाओं (उन सभी) की संख्या समान होगी। और उपयोगकर्ता द्वारा संग्रह दृश्य के साथ बातचीत शुरू करने के बाद बूलियन ध्वज फिर से चलने से रोक देगा।