Ok 伙计们,我对UI按钮有问题,也许这很简单。我有一个带 IB Action 的按钮, 以切换音乐, 改变背景图像 。
-(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];
}
}
这很好。 播放音乐( 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];
}
当我介绍这个代码时, 应用程序在视图出现时, 能够充分识别正确的背景图像, 但当我触动按钮时, 音乐会停止改变按钮背景 。 这可能是些傻事, 但我无法理解我做错了什么...