UIButtonの画像変更(サウンドON/OFF)
UIButtonの画像のカスタマイズ。
=====やりたいこととしては以下=====
●サウンドボタンを押したら、斜線のついたOFFの画像にきりかわる
●OFFの画像のときサウンドボタンをもう一度押すと、斜線がとれたONの画像に戻る
=============================
ボタンのカスタマイズはいつもInterface Builderでやってたけん、
押したら画像が切り替わるってどうやるんやろう
って初の試みで、見当つけたのがこれ。
- (IBAction)soundBtn:(id)sender {
[_soundBtn setBackgroundImage:[UIImageimageNamed:@"top_btn_sound_off.png"]
forState:UIControlStateHighlighted];
}
...ぴくりともしない...。
うーむ。
forState:UIControlStateHighlighted
ってのが「ボタンが押されているときの状態」らしいけ、
Highlighted=つまりは指が触れているときってこと?
だったら違うな。
触れてる一瞬じゃなくて、押したら以後ずっとOFFの状態をキープしててほしい。
ていうかその前に、触れてる一瞬すらも変わってない。(ちーん)
なーぜーだーー。
まぁとりあえずは(IBAction)になってる時点で、
「ボタンが押されたときの処理」ってことやけん、
forState:UIControlStateHighlighted を
forState:UIControlStateNormal になおすでしょう?
- (IBAction)soundBtn:(id)sender {
[_soundBtn setBackgroundImage:[UIImageimageNamed:@"top_btn_sound_off.png"]
forState:UIControlStateNormal];
}
これでどうだ!
(.....しーん...)
あれ?
かわらない。
なーぜーだーー。
はい、トレーナーさん助けてください。
「ボタンどうやって今まで画像入れてたの?」
「IBです」
「で、いれてるとこ見せて」
「ここです」
「どこでいれてる?」
「ん?ここです」
「ここってどこ」
「Imageでs.....ほああああああああああ!!!!」
そうです。
私がいつもボタンのカスタム画像を入れてたのは、
BackgroundImageではなく、ただのImage。
なんという凡ミス、、、。
こちらが正解。
ちゃんとうつりました!!
- (IBAction)soundBtn:(id)sender {
[_soundBtn setImage:[UIImageimageNamed:@"top_btn_sound_off.png"]
forState:UIControlStateNormal];
}
ちゃんちゃん。