2012-05-10 5 views
4

私はthis answerのコードを使ってボタンのグリッドを生成しています。アクション内の正しいUIButtonオブジェクトを見つける方法

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

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

しかし、私はどのようにUIから右ボタンにトグルボタンを割り当てるか分かりません。私はすべてのボタン用のアウトレットを持っていません。どのように私はこれを行うことができます任意のアイデア?

答えて

1

あなたが押された同じボタンを変更している場合は、この作業をする必要があります:

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

senderが押されたボタンあるためです。

1

引数senderを使用します。 senderは、アクションをコミットしたオブジェクトです。ので、ちょうどUIButtonにキャストし、画像を変更

0

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

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

単に画像、部分及びタグ場合の不要の変更を変更しなければなりません。

+0

変更が必要なボタンです。 – networkprofile

1

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

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

     if(pressedButton.tag==0){ 
      [email protected]"on.png"; 
      pressedButton.tag=1; 
     } 
     else{ 
      imag[email protected]"off.png"; 
      pressButton.tag=0; 
     } 
     [pressedButton setImage:[UIImage imageNamed:imageName] 
     forState:UIControlStateNormal]; 
}
+0

これは実際に私が遭遇した次の問題です。どうもありがとう! – networkprofile

+0

@あなたの歓迎です。 –

関連する問題