我有一个表格视图,其中填充了来自对象数组的数据。对象有价格、名称等。
当一个单元格被删除时,数据源(数组)被更新,并且该行使用 UITableViewRowAnimationFade 滑出屏幕。
当一个项目被删除时,数组中对象的某些属性(例如价格)可能会发生变化,因此我需要更新屏幕上的所有单元格,因为它们的数据可能已经更改。
我查看了文档,发现reloadRowsAtIndexPaths:withRowAnimation可以与indexPathsforVisibleRows结合使用以重新加载屏幕上的行,但是在 tableView:commitEditingStyle:forRowAtIndexPath 中执行此操作看起来非常讨厌,因为它尝试执行删除动画同时还重新加载...
有没有办法在执行任务之前等待删除动画完成?
这是我的 ViewController 中的代码
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
// update the datasource
[self.dataController deleteItemAtIndex:indexPath.row];
// update the table
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
// reload the table to show any changes to datasource from above deletion
[self.tableView reloadRowsAtIndexPaths:[self.tableView indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationNone];
}
}
asd