5

UITableView を含むビューがあります。ユーザーがスワイプすると、セルに削除ボタンを表示できます。

ユーザーが削除ボタンに触れると、メソッドがトリガーされます (これは正常に機能します)。しかし、ユーザーがセルを削除しないことに決め、ビュー内の任意の場所に触れて削除ボタンを非表示にした場合。

どうすればそれを検出できますか?

4

3 に答える 3

3

[UITableViewCell showingDeleteConfirmation]

また

[UITableViewCell willTransitionToState:]UITableViewCellStateShowingDeleteConfirmationMaskパラメータとして

于 2012-05-17T08:27:40.147 に答える
3

ユーザーがセルの削除マークの外側をタップすると、プログラムはtableView:didEndEditingRowAtIndexPath:テーブル ビュー デリゲートの呼び出しを受け取る必要があります。

于 2012-05-17T08:27:52.253 に答える
1

UITableViewCellサブクラスで、willTransitionToState:メソッドを実装します。このメソッドは、セルが編集状態に移行するとき、または編集状態から移行するときにUITableViewによって呼び出されます。

クラスの実装では、メソッドに渡されたマスクパラメータの値を条件付きでチェックして、セルがどの状態に遷移しているかを判断する必要があります。マスクに使用できる値は次のとおりです。

enum {
    UITableViewCellStateDefaultMask                     = 0,
    UITableViewCellStateShowingEditControlMask          = 1 << 0,
    UITableViewCellStateShowingDeleteConfirmationMask   = 1 << 1
};

あなたの場合、UITableViewCellStateDefaultMaskへの遷移を監視して、実装が次のようになるようにします...

- (void)willTransitionToState:(UITableViewCellStateMask)state {
    if (state == UITableViewCellStateDefaultMask) {
        // User has switched back to default state...
        // ...
    }
}
于 2012-05-17T08:33:41.137 に答える