2015-07-20 74 views
0

我打算做一個聲音按鈕,而對於按鈕我有兩個圖像:一個用於ENABLE,一個用於DISABLE狀態的聲音。改變一個按鈕的圖像

我只是設置第一個圖像@"onimage"的按鈕,並設置一個布爾值SoundIsOn=YESviewDidLoad。按鈕apears。

我添加了一個操作方法來調用按鈕單擊。

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

switchSound方法,我檢查SoundIsOnYESNO,我想改變按鈕圖像,使聲音啓用和禁用。但按鈕的圖像沒有改變。

這裏是我的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; 
    } 

問:我怎樣才能改變按鈕圖像後,每點擊?任何幫助,將不勝感激:)

+0

您需要爲按鈕設置兩種狀態。選擇和正常。 'switchSound'方法可以:'self.soundBtn.selected =!self.soundBtn.selected' http://commandshift.co.uk/blog/2013/04/16/uibutton-control-states/ – Klevison

+1

感謝您的幫助:)它的工作真的很好。如果我想啓用和禁用聲音,我必須檢查(sound.button.selected)是否執行選擇器,反之亦然? – FarhaD

+0

所以,投票+1 ... – Klevison

回答

0
- (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; 
} 

當然,你可以在界面生成器(如果你正在使用它)改變圖像。