UIButtonの画像が変更できない!
なんかしょうもないことでハマってたのでメモ。
IB で UIButton にイメージを設定して、ボタンがタップされたら別の画像にしようと思った。
で、IBAction はこんな感じに。
- (IBAction)touch:(id)sender { NSLog(@"Button touched"); myButton.imageView.image = [UIImage imageNamed:@"newButton.png"]; }
単純に、UIButton のイメージを newButton.png にしてるだけ(のつもり)。
なんだけど…ボタンをタップしても画像が変わらない!
コンソールにはちゃんと「Button touched」って出てるから、IBOutlet の接続し忘れでもない。
なんでだろう?と思って UIButton のリファレンスを見てたら… setImage:forState: なんてあるのね。
結局はこんなコードで OK でした。
- (IBAction)touch:(id)sender { NSLog(@"Button touched"); [myButton setImage:[UIImage imageNamed:@"newButton.png"] forState:UIControlStateNormal]; }
UIButton のプロパティで設定するんだよな〜という思い込みと、コード入力時に Xcode がポンポン先を出してくれる親切さで、サックリ最初の様なコードを書いちゃった。