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 がポンポン先を出してくれる親切さで、サックリ最初の様なコードを書いちゃった。