我有UITableView
来自NSFetchedResultsController
的更新。 UITableView
具有偶数行和奇数行的交替行颜色。我需要添加对对象的插入和删除的支持,所以我实现了NSFetchedResultsControllerDelegate
来处理这个问题。但是,现在我的交替配色方案是在插入任何地方后插入的。关于如何在不重新加载表视图的情况下解决这个问题的任何想法(而不是放松我的动画)?
到目前为止,这是我的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomTableViewCell *cell = ...;
indexPath.row % 2 == 0 ? [cell odd] : [cell even];
return cell;
}
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)object
atIndexPath:(NSIndexPath *)deleteIndexPath
forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)insertIndexPath
{
switch(type)
{
case NSFetchedResultsChangeInsert:
[self.mainTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:insertIndexPath]
withRowAnimation:UITableViewRowAnimationFade];
break;
case NSFetchedResultsChangeDelete:
[self.mainTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:deleteIndexPath]
withRowAnimation:UITableViewRowAnimationFade];
break;
}
}
答案 0 :(得分:0)
以下是我为我的一个项目所做的事情:
- (void)reloadRowsFromIndex:(NSUInteger)index {
NSMutableArray *indexPaths = [[NSMutableArray alloc] init];
for (NSInteger i = index; i < [items count]; i++) {
[indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]];
}
[tableView reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
[indexPaths release];
}
在reloadRowsFromIndex:
内调用 tableView:commitEditingStyle:forRowAtIndexPath:
,第一个索引路径被更改。