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