1

UITableview が編集モードのときにサブビューを表示および非表示にしようとしていますが、削除ボタンが表示されている間 (編集だけでなく、編集および削除プロセス全体)、通常モードに戻ると消えます。

私はそれを自分の思い通りにすることに本当に近づいていますが、セルの「削除」ボタンをクリックするたびに、ユーザーが編集モードを完全に終了するまでビューを消したくありません。 .

デリゲート メソッドを使用しようとしています- (void)willTransitionToState:(UITableViewCellStateMask)stateが、呼び出すとエラーが発生しますsuper

- (void)willTransitionToState:(UITableViewCellStateMask)state {

    [super willTransitionToState:state];

    if ((state & UITableViewCellStateShowingEditControlMask)) {
        clear.alpha = 1.0;
    }
}

エラーは一般的なものですが、解決策が見つからないようです:

「UITableViewController」の目に見える @interface はセレクター「willTransitionToState:」を宣言しません

スーパーを呼び出さなくてもエラーは発生しませんが、メソッドも呼び出されません。

も使用してみましsetEditingたが、編集/削除プロセス全体で表示したままにしたいビューは、削除ボタンをタップしてセルを削除すると消えますが、編集モードのままです

4

2 に答える 2

1

カスタムテーブルビューセルでそのメソッド(willTransitionToState:)を呼び出す必要があります。UITableViewControllerクラスで認識されるメソッドではありません。カスタムテーブルビューセルクラスの場合、.mファイルでwillTransitionToState:を呼び出すと、機能するはずです。セルクラスにivar'clear'が定義されていることを確認してください(指定したコードに基づいて、定義されているようです)。編集中にセルがコンテンツをインデントしないようにするなどの操作を行う場合は、layoutSubviewsメソッドも確認してください。

于 2012-07-11T08:24:39.547 に答える