在我的项目中,我使用 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:] 来执行更改的动画还是有更好的方法?
我对子类化 collectionViews 没有太多了解,所以任何帮助都会很棒......
谢谢,比尔。