0

IB では、9 つ​​のボタン (カスタム) と状態構成の選択を作成します。

このヒントは、選択ボタンと選択されていないボタンの場合のみです

- (IBAction)onButtonsTapped:(UIButton*)sender {
    [[sender setSelected:![sender isSelected]];
    [priviousSelectedBtn setSelected:NO];
}

しかし、私はそれを解放したい:

ボタン1(アクション)を押すと、ボタン1の画像が変更されます(setSelected:YES)

ボタン 2 (アクション) を押すと、ボタン 2 の画像が変更され (setSelected: YES)、番号 1 の画像が変更されます (setSelected: NO)。

ボタン 9 (アクション) を押すと、ボタン 9 の画像が変更され (setSelected: YES)、ボタン 2 の画像が変更されます (setSelected: NO)。

4

2 に答える 2

0

以下のコードを試してください

for (int tag = 1; tag <= 9; tag++)//set your tag value as you wish max is 9 as you have mentioned there are 9 buttons
{
    UIButton *btn = (UIButton*)[self.view viewWithTag:tag];

    if (btn.tag != sender.tag)
    {
        [btn setSelected:NO];
    }

}

これがお役に立てば幸いです。そして、それらのボタンのスーパービューのためにそれらのタグを再利用しないでください。そして、ボタンごとに固有の一連のタグ値を作成します。

于 2013-01-22T13:39:48.260 に答える
0

ボタンごとに 9 つのアウトレットを作成し、それらをループしてチェックと選択解除を行うことができます。(コンパイラチェックされていないコード、あなたはいくつかのアイデアを得るかもしれません)

または、previousSelectedButton のアウトレットを格納できます。

@property(strong)id previousSelectedButton;

- (IBAction)onButtonsTapped:(UIButton*)sender {
    [sender setSelected];
    [previousSelectedButton setSelected:NO];

    if(previousSelectedButton==nil || previousSelectedButton!=sender){
         previousSelectedButton=sender;
    }

}
于 2013-01-22T13:30:43.960 に答える