1

画像

board[i] は、プログラムで作成した UIButton の配列であり、UIControlStateHighlighted のイメージを変更できません。

    [board[i] setImage:[UIImage imageNamed:@"block"] forState:UIControlStateNormal];
    [board[i] setImage:[UIImage imageNamed:@"blockPressed"] forState:UIControlStateHighlighted];

シミュレーターでマウスでボタンを押しても画像が変わりません。これは非常に初歩的な質問だと思いますが、コードが機能しないことはわかりません。

4

3 に答える 3

1

ボタンをプログラムで追加するときは、次のようにします。

  1. それぞれのターゲットを追加します。

  2. 0 から count までのすべてのボタンにタグを付けます。

  3. UserInteraction を true に設定します

  4. setBackgroundImage:[UIImage imageNamed:@"blockPressed.png"] forState:UIControlStateHighlighted ボタンをハイライトしたい場合

ボタンが押されると、すべてのボタンに対して同じメソッドが呼び出されます。たとえば、

-(void)ButtonTouched:(id)sender
{
   UIButton *btntouched = sender;
   NSLog(@"%@", btntouched);
   [btntouched setBackgroundImage:[UIImage imageNamed:@"blockPressed.png"]  forState:UIControlStateHighlighted];// it can be forState:UIControlStateNormal also
}
于 2012-08-21T10:40:04.767 に答える
0

強調表示された状態をトリガーしているとは思いません。これは、対話が有効になるように設定されていないことが原因である可能性があります。または、ボタンの設定方法に欠けているものがあります。

他に試すことができるのは、ボタンがタッチされたときの各ボタンにセレクターを追加し、セレクター関数の送信者を参照して画像を変更することです。

于 2012-08-21T10:38:24.827 に答える