2011-09-13 32 views
0

ボタンを作成してビューに追加しましたが、これらのボタンに何らかの形でアクセスして外観を変更できることを期待していました。UIボタンの色が変更された後に変更する

これは私が試した2つのバージョンのコードですが、正しいボタンを見つけることはできませんが、バックグラウンドカラーに何も起きないようです。

for(UIView *v in [self.view subviews]) { 
     if ([v isKindOfClass:[UIButton class]]) { 
      if (buttonTag == [v tag]) { 
       v.backgroundColor = [UIColor redColor]; 
      } 
     } 
    } 

for (int i = 0; i < [[self.view subviews] count]; i++) { 
     if ([[self.view.subviews objectAtIndex:i] class] == [UIButton class]) { 
      NSLog(@"Tags : %i", [[self.view.subviews objectAtIndex:i] tag]); 
      if (buttonTag == [[self.view.subviews objectAtIndex:i] tag]) { 

       [[self.view.subviews objectAtIndex:i] setBackgroundColor:[UIColor redColor]]; 
      } 
     } 
    } 

感謝。

+0

最初のバージョンでbuttonTagチェックをしばらく外しても動作するかどうか確認できますか? – Saran

+0

それを試してみました。 –

+0

ボタンをプログラムで作成しています –

答えて

0

buttonTagの値が正しいとすれば、私の最初のコードバージョンが私に役立つと言えます。

デバッグするには、buttonTagの比較をコメントアウトし、すべてのボタンを赤くすることをお勧めします。

ボタンがUIView階層の最上位にない可能性があります。これは、サブビューに埋め込まれている可能性があります。もしそうなら、ループを再帰関数に入れることができます。

または、UIButtonのbackgroundColorが赤色になっていて、見えないことがあります。丸い四角形のボタンの内部は白色のままです。丸い角の外側の領域だけが赤く表示されます。背景画像のボタンは、赤を覆うこともあります。

どちら使用できる
0

  1. (myButtton.selected = YES) {myButton.backgroundColor = [UIColor redColor]場合は、例えば

    ために選択されたプロパティを設定することができます。 } また、強調表示されたプロパティは、myBUtton.highlighted = YES;

OR

  1. 次のように背景画像または背景色を設定することができる。 [myButtonというsetBackgroundImage:[UIImage imagedNamed:strechableImage] forState:UIControlStateTouchUpInside]。

    または通常状態の場合: [myButton setBackgroundImage:[UIImage imagedNamed:strechableImage] forState:UIControlStateNormal];

+0

実際にボタンを選択していないのですが、ボタンの色が変わる何かがクリックされています。 –

+0

UITouch * touch = [[イベントallTouches] anyObject]; if([touch view] == theaTouchesView) –

関連する問題