1

私はUITableViewを使用しており、Appleが提供する両方の標準編集ツールをサポートしたいと考えています。これまでのところ、セルをスワイプして[削除]ボタンを表示し、右上の[編集]ボタンをタップして複数行の編集モードに入ることができます。それはうまく機能しています。

問題は、tableViewをメールアプリと同じように動作させたいということです。つまり、スワイプジェスチャで編集モードに入るときは「削除ボタンを表示するだけ」、入力するときは「ゴミ箱ボタンを表示する」ということです。複数行の編集モード。自分がどの編集モードになっているのかをどうやって知ることができるのかわかりません...

たとえばsetEditing、タブバーを非表示にするメソッドを追加しました(テーブルの動作を確認するためだけです)。

-(void)setEditing:(BOOL)editing animated:(BOOL)animated 
{

    self.tableView.allowsMultipleSelectionDuringEditing = editing;
    [super setEditing:editing animated:animated];

    if (editing) {

        self.tabBarController.tabBar.hidden = YES;

    } else {

        self.tabBarController.tabBar.hidden = NO;
    }

}

現在、セルをスワイプしたり、編集ボタンを押したりすると、タブバーが非表示になり、その後通常の状態に戻ります。編集ボタンを押したときだけ非表示にしたい。

どこでどのようにそれを行うべきですか?

ありがとう。

4

1 に答える 1

0

このように、送信者を編集方法に引き渡してみませんか?

-(void)setEditing:(BOOL)editing animated:(BOOL)animated sender:(id)sender
{

    self.tableView.allowsMultipleSelectionDuringEditing = editing;
    [super setEditing:editing animated:animated];
    if (editing && [sender isKindOfClass:[UIButton class]]) 
    {
        self.tabBarController.tabBar.hidden = YES;
    } 
    else 
    {
        self.tabBarController.tabBar.hidden = NO;
    }

}
于 2012-08-23T08:52:46.447 に答える