【发布时间】:2013-01-22 10:05:48
【问题描述】:
有谁知道在显示集合视图时如何重新加载/刷新 UICollectionView?基本上我正在寻找类似于 UITableview 的标准 reloadData 方法的东西。
【问题讨论】:
-
可能我理解错了,但是 UICollectionView 实现了 reloadData。
标签: ios objective-c uicollectionview reloaddata
有谁知道在显示集合视图时如何重新加载/刷新 UICollectionView?基本上我正在寻找类似于 UITableview 的标准 reloadData 方法的东西。
【问题讨论】:
标签: ios objective-c uicollectionview reloaddata
你可以打电话:
[self.myCollectionView reloadData];
也可以重新加载各个部分和项目:
[self.myCollectionView reloadSections:indexSet];
[self.myCollectionView reloadItemsAtIndexPaths:arrayOfIndexPaths];
【讨论】:
正确最好的方法是使用
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
}
}];
并且所有内容都被预先计算为一个很好的动画。最佳做法是先删除所有元素,然后再添加,以避免冲突。
【讨论】:
[self.collectionView reloadData];
【讨论】: