0

表のセルを 1 回スワイプして右から削除ボタンを押した瞬間に呼び出されるデリゲート メソッドはありますか?

スワイプを追跡して、そこで何らかのアクションを実行したかったのです。

また、セルの「削除」ボタンをタップすると、どのデリゲート メソッドが呼び出されますか。

代替テキスト

4

1 に答える 1

6

このUITableViewDelegateメソッドtableView:editingStyleForRowAtIndexPath:は、行が「編集」モードに入る前に呼び出されます。これは、セルをスワイプしたとき、およびテーブル ビューがsetEditing:animatedメッセージを受信したときに呼び出されます。テーブル ビューを編集モードにする [編集] ボタンがある場合は、表示されているセルごとに呼び出されることに注意する必要があります。

したがって、次のようなことができます。

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 
           editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
    if (tableView.editing) {
        return UITableViewCellEditingStyleDelete;
    }
    else {
        // do your thing
        return UITableViewCellEditingStyleDelete;
    }
}

タップすると削除ボタンtableView:commitEditingStyle:forRowAtIndexPath:が呼び出されます。

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

    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // repsond to delete
    }     
}

また、削除ボタンのテキストを変更したい場合は、使用できますtableView:titleForDeleteConfirmationButtonForRowAtIndexPath:

反対側で [削除] ボタンを表示したくないが何か他のことをしたい場合は、自分で調べてUISwipeGestureRecognizer処理する必要があります。

于 2010-12-16T11:28:32.540 に答える