0

わかりました。UIButtonで問題が発生しました。おそらくそれは簡単に解決できます。背景画像を変更するIBActiontoggleMusicのボタンがあります。

-(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はボタンの背景を変更しなくなります。ばかげているかもしれませんが、何が間違っているのかわかりません...

4

1 に答える 1

1

私が気づいたことの1つは、viewWillAppearあなたが電話することです

[botaoMusic setImage:...];

一方、ボタンを押すと、

[botaoMusic setBackgroundImage:...];

ビューが表示されたときに読み込まれたものの上部の画像の背後にある背景画像を変更するだけで、まだ機能している可能性があります

于 2012-05-21T17:05:10.677 に答える