带动画的UICollectionView reloadSections

时间:2013-10-09 13:26:47

标签: objective-c animation uicollectionview

我想用一些有趣的动画重新加载UICollectionView。在UITableView中有一个名为reloadSections:withRowAnimation的方法。 但是在UICollectionView中只有reloadSections

如何自定义reloadSections动画?我肯定在App Store的应用程序中看到了这一点。

3 个答案:

答案 0 :(得分:30)

就这样做:

[self.collectionView performBatchUpdates:^{
    [self.collectionView reloadSections:[NSIndexSet indexSetWithIndex:0]];
} completion:nil];

答案 1 :(得分:20)

Swift 3版本:

collectionView.performBatchUpdates({
    let indexSet = IndexSet(integer: 0)
    self.collectionView.reloadSections(indexSet)
}, completion: nil)

答案 2 :(得分:2)

这篇文章值得一读: http://victorlin.me/posts/2016/04/29/uicollectionview-invalid-number-of-items-crash-issue

TLDR:

  

所以事实证明,在调用给定的闭包之前,performBatchUpdates首先调用collectionView(:numberOfItemsInSection :)以了解项目编号。接下来,它调用闭包,最后再次调用collectionView(:numberOfItemsInSection :)来检查数字。这里是抛出断言异常的地方。