5

テーブル セルを削除するために、標準のテーブル ビュー データソース プロトコルを使用しています。

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if(editingStyle == UITableViewCellEditingStyleDelete)
    {
        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
}

アニメーションが完了したら、他のコードを実行したいと思いますが、deleteRowsAtIndexPaths:withRowAnimationメソッドには完了ブロックがありません。このメソッドが完了した後、他にどのようにコードを実行しますか?

4

2 に答える 2

2

これを行う 1 つの方法は、UITableViewDataSourceのメソッドを実装tableView:commitEditingStyle:forRowAtIndexPath:し、内部で遅延パフォーマンス メソッドを実行することだと思います。

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

    if (UITableViewCellEditingStyleDelete == editingStyle) {

        [self performSelector:@selector(delayedMethod) withObject:nil afterDelay:0.1];
    }
}

-(void)delayedMehtod {
    // Your code here...
}

「完了」ブロックほどきれいではないかもしれませんが、うまくいくと確信しています。

お役に立てれば!

于 2013-08-27T21:52:34.253 に答える