我想用一些有趣的動畫重新加載UICollectionView。在UITableView中有一個名爲reloadSections:withRowAnimation
的方法。 但是在UICollectionView中只有reloadSections
。UICollectionView用動畫重新加載部分
我該如何定製reloadSections動畫?我在App Store的應用程序中看到了這一點。
我想用一些有趣的動畫重新加載UICollectionView。在UITableView中有一個名爲reloadSections:withRowAnimation
的方法。 但是在UICollectionView中只有reloadSections
。UICollectionView用動畫重新加載部分
我該如何定製reloadSections動畫?我在App Store的應用程序中看到了這一點。
就那樣做:
[self.collectionView performBatchUpdates:^{
[self.collectionView reloadSections:[NSIndexSet indexSetWithIndex:0]];
} completion:nil];
這裏這篇文章值得一讀: http://victorlin.me/posts/2016/04/29/uicollectionview-invalid-number-of-items-crash-issue
TLDR:
所以它變成了performBatchUpdates調用的CollectionView(:numberOfItemsInSection :)首先調用給定的閉包知道物品編號。接下來,它調用閉包,並最終再次調用collectionView(:numberOfItemsInSection :)來檢查數字。這裏是拋出斷言異常的地方。
夫特3版本:
collectionView.performBatchUpdates({
let indexSet = IndexSet(integer: 0)
self.collectionView.reloadSections(indexSet)
}, completion: nil)
[UICollectionView動畫數據變化]的可能重複(http://stackoverflow.com/questions/13272315/uicollectionview-animate-data-change) – Vinzzz