我试图实现一个使用获取的结果控制器作为其数据源的AQGridView.
我不太确定如何使用网格视图来处理NSFetchedResultsController委托方法;即内容变化.我了解如何将FRC用于其他网格视图数据源代理.
有人可以指出我的方向正确吗?
解决方法
结果应该看起来有点像这样:
- - (void)controllerWillChangeContent:(NSFetchedResultsController *)controller
- {
- [gridView beginUpdates];
- }
- - (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo
- atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type
- {
- switch(type)
- {
- case NSFetchedResultsChangeInsert:
- break;
- case NSFetchedResultsChangeDelete:
- break;
- }
- }
- - (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
- atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type
- newIndexPath:(NSIndexPath *)newIndexPath
- {
- ChannelPageViewController *currentPageController,*destinationPageController;
- NSIndexSet * indices = [[NSIndexSet alloc] initWithIndex: indexPath.row];
- NSIndexSet *newIndices = [[NSIndexSet alloc] initWithIndex:newIndexPath.row];
- switch(type) {
- case NSFetchedResultsChangeInsert:
- [gridView insertItemsAtIndices:newIndices withAnimation:AQGridViewItemAnimationNone];
- break;
- case NSFetchedResultsChangeDelete:
- [gridView deleteItemsAtIndices:indices withAnimation:AQGridViewItemAnimationNone];
- break;
- case NSFetchedResultsChangeUpdate:
- [gridView reloadItemsAtIndices:indices withAnimation:AQGridViewItemAnimationNone];
- break;
- case NSFetchedResultsChangeMove:
- [gridView deleteItemsAtIndices:indices withAnimation:AQGridViewItemAnimationNone];
- [gridView insertItemsAtIndices:newIndices withAnimation:AQGridViewItemAnimationNone];
- break;
- }
- }
- - (void)controllerDidChangeContent:(NSFetchedResultsController *)controller
- {
- [gridView endUpdates];
- if ([[frc fetchedObjects] count] == 1) {
- [gridView reloadData];
- }
- }