2011-04-27 87 views
4

使用下面的代碼,似乎按鈕始終處於正常狀態(始終爲綠色),儘管我點擊了他。無法更改選定狀態的自定義uiButton的背景圖像

UIButton *gumb = [UIButton buttonWithType:UIButtonTypeCustom]; 
    gumb.frame = CGRectMake(4, 40, 104, 37); 
    gumb.tag=0; 
    [gumb setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
    [gumb setTitleColor:[UIColor blackColor] forState:UIControlStateSelected]; 
    [gumb setBackgroundImage:[UIImage imageNamed:@"greenButton.png"] forState:UIControlStateNormal]; 
    [gumb setBackgroundImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateSelected]; 

如果我正常狀態whiteButton設定圖像和入圍到greenButton那麼按鈕始終是白色和綠色永遠。

+3

當你點擊按鈕,它會變成**亮顯狀態**。不**選**狀態。 **選擇**狀態用於製表按鈕 – 2012-01-27 16:50:42

回答

0

你設定按鈕的狀態,在按鈕的點擊動作selected

- (IBAction)buttonClicked:(id)sender; 
{ 
UIButton *button = (UIButton *)sender; 
if(button.tag == 0)// in your case 
{ 
button.selected = YES; 
} 
// Do something 
} 

希望這有助於

+0

我認爲iOS會照顧這個。我有3個按鈕在代碼中創建,所以我想我必須設置其他2的狀態爲「selected = NO」,當一個人按下。 – DixieFlatline 2011-04-27 09:32:39

+0

這不適合我。 – 2012-06-28 17:04:35

4
[gumb setBackgroundImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateHighlighted] 

使用這一個,而不是選定的圖像

1

我不知道如果選擇狀態僅用於製表符按鈕,因爲我嘗試過像DixieFlatline那樣做,有時確實會改變按鈕圖像。但tt.Kilew的方法絕對值得嘗試。試試: [gumb setBackgroundImage:[UIImage imageNamed:@「whiteButton.png」] forState:UIControlUIControlStateHighlighted];並點擊按鈕圖像將被改變。

0

代碼設置選中狀態的圖像:

[_button setImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateHighlighted]; 

規範設置正常狀態的圖像:

[_button setImage:[UIImage imageNamed:@"whiteButton.png"] forState: UIControlStateNormal];