更改按钮的图像

changing a button's image

我打算制作一个声音按钮,对于该按钮,我有两张图片:一张用于声音的启用状态,一张用于声音的禁用状态。

我刚刚为按钮设置了第一张图片 @"onimage",并在 viewDidLoad 上设置了一个布尔值 SoundIsOn=YES。按钮出现。

我添加了一个操作方法来调用按钮点击。

[soundBtn addTarget:self action:@selector(switchSound) forControlEvents:UIControlEventTouchUpInside];

switchSound方法中,我检查SoundIsOnYES还是NO,我想更改按钮图像以启用声音和禁用。但是按钮的图像没有改变。

这是我的 switchSound 代码:

if  (soundIsOn == YES) {
        [self.soundBtn setImage:[UIImage imageNamed:@"offimage"] forState:UIControlStateNormal];
        soundIsOn = NO;
    }
    if  (soundIsOn == NO) {
        [self.soundBtn setImage:[UIImage imageNamed:@"onimage"] forState:UIControlStateNormal];
        soundIsOn = YES;
    }

问题:如何在每次点击后更改按钮图像?任何帮助将不胜感激:)

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.soundBtn setImage:[UIImage imageNamed:@"offimage"] forState:UIControlStateSelected];
    [self.soundBtn setImage:[UIImage imageNamed:@"onImage"] forState:UIControlStateNormal];
}


- (IBAction)switchSound:(id)sender
{
    self.soundBtn.selected = !self.soundBtn.selected;
    soundIsOn = !soundIsOn;
}

当然,您可以在 Interface Builder 中更改图像(如果您正在使用它)。