我有表视图节标题,显示有关该节中包含的对象的摘要信息(特定属性的总和)。
当用户通过在表格单元格上滑动来删除对象时,我从模型中删除该对象,并且FetchedResultsController通过其委托从表格视图中删除该单元格。
删除对象:
NSManagedObject *mo = [self.fetchedResultsController objectAtIndexPath:indexPath];
[self.context performBlockAndWait:^{
[self.context deleteObject:mo];
[[APDatabase database] saveContext];
}];
作为回应,FRC呼叫其代表,我动画正在删除的单元格。
- (void)controller:(NSFetchedResultsController *)controller
didChangeObject:(id)anObject
atIndexPath:(NSIndexPath *)indexPath
forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)newIndexPath
{ ...
case NSFetchedResultsChangeDelete:
[self.tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
... }
问题是,部分标题中的总计现在已经更改,但部分标题仍显示旧的总计。我无法调用[tableView reloadData]
因为这会停止删除单元格的动画。
如何在删除对象时更新节标题总数?
使用
创建节标题-(UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
使用[theSection objects]
非常感谢你的帮助
答案 0 :(得分:0)
在表视图上调用headerViewForSection:
以获取相应部分以获取先前返回的视图,然后直接更新其内容。
这是一种类似于直接更新单元格内容的方法,而不是在更改与正在更新的项目(而不是添加或删除)相关时要求表格视图重新加载。