4

この回答のコードを使用して、ボタンのグリッドを生成しています。

ボタンがクリックされたときに、ボタンの画像を変更したい。だから私は次のようなことをする必要があります:

- (void)buttonPressed:(id)sender {
        [toggleButton setImage:[UIImage imageNamed:toggleIsOn @"on.png"] 
        forState:UIControlStateNormal];
    }

しかし、UIからtoggleButtonを右のボタンに割り当てる方法がわかりません。すべてのボタンにコンセントがありません。どうすればこれを行うことができますか?

4

4 に答える 4

1

押された同じボタンを変更する場合、これは機能するはずです。

- (void)buttonPressed:(id)sender {
    [sender setImage:[UIImage imageNamed:toggleIsOn @"on.png"] forState:UIControlStateNormal];
}

これはsender、押されボタンだからです。

于 2012-05-10T12:25:37.143 に答える
0

引数を使用しますsendersenderアクションをコミットしたオブジェクトです。だから..それをキャストしてUIButton画像を変更するだけです

于 2012-05-10T12:25:42.667 に答える
0

すべてのボタンのアウトレットとアクションを作成していない場合は、サブビューを取得して isKindofClass で比較しても問題は解決しません。各ボタンにタグ値を割り当てる必要があり、送信者を UIButton にキャストして、タグを決定し、タグに従って画像を変更できます。押されているボタンの画像を変更したい場合は、押されたボタンが最新であるため、送信者の画像を変更するだけです。

if(((UIButton *)sender).tag==intvalue)
{
((UIButton *)sender) setImage:[UIImage imageNamed:@"Your Image"]];
}

押されたボタンの画像を変更する必要がある場合は、画像を変更するだけで、if 部分とタグは必要ありません。

于 2012-05-10T12:36:29.030 に答える
0

動的 UIButton でトグル スイッチのオンとオフを処理する場合は、tagプロパティの状態を0orとして維持します。1送信者パラメーターの重要な 1 つは、これがアクションが実行されたオブジェクトであることを常に示します。

- (void)buttonPressed:(id)sender {
     UIButton* pressedButton=(UIButton *)sender;
     NSString* imageName=nil;

      if(pressedButton.tag==0){
          imageName=@"on.png";
          pressedButton.tag=1;
      }
      else{
          imageName=@"off.png";
          pressButton.tag=0;
      }
      [pressedButton setImage:[UIImage imageNamed:imageName]
      forState:UIControlStateNormal];
}
于 2012-05-10T12:44:14.683 に答える