UITableView を含むビューがあります。ユーザーがスワイプすると、セルに削除ボタンを表示できます。
ユーザーが削除ボタンに触れると、メソッドがトリガーされます (これは正常に機能します)。しかし、ユーザーがセルを削除しないことに決め、ビュー内の任意の場所に触れて削除ボタンを非表示にした場合。
どうすればそれを検出できますか?
UITableView を含むビューがあります。ユーザーがスワイプすると、セルに削除ボタンを表示できます。
ユーザーが削除ボタンに触れると、メソッドがトリガーされます (これは正常に機能します)。しかし、ユーザーがセルを削除しないことに決め、ビュー内の任意の場所に触れて削除ボタンを非表示にした場合。
どうすればそれを検出できますか?
[UITableViewCell showingDeleteConfirmation]
また
[UITableViewCell willTransitionToState:]
UITableViewCellStateShowingDeleteConfirmationMask
パラメータとして
ユーザーがセルの削除マークの外側をタップすると、プログラムはtableView:didEndEditingRowAtIndexPath:
テーブル ビュー デリゲートの呼び出しを受け取る必要があります。
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...
// ...
}
}