ボタンがタップされたときにボタンの画像を変更する必要があります。ボタンの背景画像は ViewDidLoad メソッドで設定します。このスレッドに添付されている画像を参照してください。
- 初めてボタンをタップすると、ボタンのプロパティが選択済みに変更され、「arrow_right.png」画像がボタンに設定されます。
2.2回目のタップで、ボタンの状態が強調表示されているのに、背景画像が設定されていないことがわかりました。代わりに、ぼかし効果が見られます。
私の懸念は、UIButton の切り替え中に見た、画像が強調表示された状態に設定されていないことです。ボタンの状態が Selected から Normal に変わるとき。バグですか、それとも私のミスですか?
ありがとうございました。
- (void)viewDidLoad
{
[super viewDidLoad];
[testButton setBackgroundImage:[UIImage imageNamed:@"btn_normal.png"] forState:UIControlStateNormal];
[testButton setBackgroundImage:[UIImage imageNamed:@"btn_pressed.png"] forState:UIControlStateSelected];
[testButton setBackgroundImage:[UIImage imageNamed:@"btn_pressed.png"] forState:UIControlStateHighlighted];
}
- (IBAction)buttonPressed:(id)sender
{
UIButton *button = (UIButton*)sender;
button.selected = !button.selected;
if (button.selected)
{
[button setImage:[UIImage imageNamed:@"arrow_right.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"arrow_right.png"] forState:UIControlStateHighlighted];
[button setImage:[UIImage imageNamed:@"arrow_right.png"] forState:UIControlStateSelected];
}
else
{
[button setImage:[UIImage imageNamed:@"arrow_left.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"arrow_left.png"] forState:UIControlStateHighlighted];
[button setImage:[UIImage imageNamed:@"arrow_left.png"] forState:UIControlStateSelected];
}
}