好吧,伙计们,我遇到了 UIButton 的问题,也许这很容易解决。我有一个带有 IBAction toggleMusic 的按钮,可以更改背景图像。
-(IBAction)toggleMusic{
if (gameAppDelegate.playMusic) {
gameAppDelegate.playMusic = NO;
[menuAudioPlayer stop];
[botaoMusic setBackgroundImage:[UIImage imageNamed:@"bt_sound_off.png"] forState:UIControlStateNormal];
[SoundManager playSoundFile:@"botao3" Format:@"wav" InLoop:NO];
}
else {
gameAppDelegate.playMusic = YES;
[menuAudioPlayer play];
[botaoMusic setBackgroundImage:[UIImage imageNamed:@"bt_sound_on.png"] forState:UIControlStateNormal];
[SoundManager playSoundFile:@"botao3" Format:@"wav" InLoop:NO];
}
}
这工作正常。playmusic (bool) 是一个存储变量,所以每次我关闭应用程序然后再打开时,应用程序已经知道它是否应该播放音乐。这也工作正常。
问题是我想在应用程序打开后立即设置正确的背景图像(音乐开/关)(不仅在我单击按钮时)。所以我把下面的代码放在视图上会出现:
-(void)viewWillAppear:(BOOL)animated{
if(gameAppDelegate.playMusic)
[botaoMusic setImage:[UIImage imageNamed:@"bt_sound_on.png"] forState:UIControlStateNormal];
else
[botaoMusic setImage:[UIImage imageNamed:@"bt_sound_off.png"] forState:UIControlStateNormal];
}
当我介绍此代码时,应用程序在视图出现时成功识别出正确的背景图像,但是当我触摸按钮时,togglemusic 停止更改按钮背景。这可能很愚蠢,但我无法弄清楚我做错了什么......