1

UIControlようなものを使用 すると、コントロールが現在押されているかどうかを把握するためのUIButtonようなものを使用できます 。myControl.state

ただし、一部UIBarButtonItems(から派生していないUIControl)でも同じことを行う必要があります。これにより、テーブルの1つが押されている間、テーブルの編集を停止できます。

これが私のコードです:

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    //other checks
    for(int b=0; b<self.toolbar.items.count; b++)
    {
        UIControl *currentControl= [self.toolbar.items objectAtIndex:b];
        if(currentControl.state==UIControlStateHighlighted)
        {
            return NO;
        }
    }
    return YES;
}

明らかに、それはとして扱うUIBarButtonItems ことができるUIControlsと想定しているため、機能しませんが、ここでやろうとしていることをどのように行うのでしょうか?

4

2 に答える 2

1

より詳細に制御したい場合は、 (カスタム アートなどを使用して)UIBarButtonItemsとして再作成し、実際の UIView からボタン項目を作成するためにofを使用することをお勧めします。UIButtons-initWithCustomViewUIBarButtonItem

これにより、通常のボタン インタラクション メソッドに完全にアクセスできるようになります。唯一の欠点は、デフォルトでは素敵なバー ボタン スタイルが得られないことです。これにはアートを自分で提供する必要があります。

于 2012-07-06T21:45:00.450 に答える
0

以前も同様の問題がありました。解決できなかったので、先に進みました。これが私がしたことです:

ナビゲーション バーの代わりに ToolBar を使用し、ツールバー内の UIBarButtonItem の代わりに UIButton を使用します。

于 2012-07-06T21:33:06.400 に答える