最佳答案
在我的项目中,我使用 UICollectionView 来显示图标网格。
用户可以通过单击一个分段控件来更改排序,该控件使用不同的 NSSortDescriptor 从核心数据中调用提取。
数据量总是相同的,只是以不同的部分/行结束:
- (IBAction)sortSegmentedControlChanged:(id)sender {
_fetchedResultsController = nil;
_fetchedResultsController = [self newFetchResultsControllerForSort];
NSError *error;
if (![self.fetchedResultsController performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}
[self.collectionView reloadData];
}
问题在于 reloadData 不会动画化更改,UICollectionView 只会弹出新数据。
我是否应该跟踪一个单元格在更改之前和之后的 indexPath 位置,并使用[ self. CollectionView moveItemAtIndexPath: toIndexPath: ]来执行更改的动画,还是有更好的方法?
我没有太多的子类化 CollectionView,所以任何帮助将是巨大的..。
谢谢, 比尔。