オブジェクトの配列からのデータが取り込まれたテーブルビューがあります。オブジェクトには価格、名前などがあります。
セルが削除されると、データソース (配列) が更新され、UITableViewRowAnimationFade を使用して行が画面からスライドします。
アイテムが削除されると、配列内のオブジェクトの価格などの特定のプロパティが変更される可能性があるため、データが変更された可能性があるため、画面上のすべてのセルを更新する必要があります。
ドキュメントを調べたところ、 indexPathsforVisibleRows と組み合わせて画面上の行をリロードできる reloadRowsAtIndexPaths:withRowAnimation が見つかりましたが、 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