Reputation: 13
I need to update collectionView when without reloadData()
(To animatedly insert and delete cells) So I want to get array of indexPaths of cells.
Upvotes: 0
Views: 3640
Reputation: 4523
To get the array of index paths for currently visible UICollectionView cells just call
collectionView.indexPathsForVisibleItems()
To get all cells you can create your own array using the data source methods.
var indexPaths: [NSIndexPath] = []
for s in 0..<collectionView.numberOfSections() {
for i in 0..<collectionView.numberOfItemsInSection(s) {
indexPaths.append(NSIndexPath(forItem: i, inSection: s))
}
}
Here's the Swift5 syntax!
var allIPs: [IndexPath] = []
for s in 0..<coll.numberOfSections {
for i in 0..<coll.numberOfItems(inSection: s) {
allIPs.append(IndexPath(item: i, section: s))
}
}
Upvotes: 9