2011-04-27 83 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];