animation行删除后重新加载表

我有一个可以删除单元格的表格视图。 当一个单元格被删除,我想显示一个删除animation,如UITableViewRowAnimationFade 。 问题是我的表视图的单元格具有交替的背景颜色,所以我需要在animation完成后-reloadData来修复已删除单元格下的所有单元格的颜色。

所以,如果你还没有阅读到这一点,我需要一个方法来完成表视图animation完成后运行一些代码。 我目前使用performSelector:withObject:afterDelay:和硬编码animation延迟的近似值。 这种方法是有效的,但是必须有更好的方法来做到这一点:

 NSIndexPath * path = [listTable indexPathForCell:deletingCell]; NSArray * indexPaths = [NSArray arrayWithObject:path]; [listTable deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade]; [listTable performSelector:@selector(reloadData) withObject:nil afterDelay:0.35]; 

在这种情况下,我假设UITableViewRowAnimationFade将需要不到0.35秒完成。

你也可以用相同的延迟使用NSTimer(虽然不需要,-performSelector:withObject:afterDelay:工作正常)。

另一个select是在deletingCell细胞( path )之后循环遍历单元格并重绘它们,或者将索引path添加到数组并调用reloadRowsAtIndexPaths:withRowAnimation:如下所示。 那么你也可以使用UITableViewRowAnimationFade

 - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation