无法为选定状态更改自定义uiButton的背景图像

时间:2011-04-27 09:03:15

标签: iphone background 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则按钮始终为白色且从不为绿色。

4 个答案:

答案 0 :(得分:4)

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

使用这一个而不是选择的图像

答案 1 :(得分:1)

我不确定选择状态是否仅用于制表符按钮,因为我尝试过像DixieFlatline那样做,有时会使按钮图像发生变化。但是tt.Kilew的方法绝对值得一试。试一试:  [gumb setBackgroundImage:[UIImage imageNamed:@“whiteButton.png”] forState:UIControlUIControlStateHighlighted];单击时将更改按钮图像。

答案 2 :(得分:0)

您是否在按钮点击操作

中将按钮的状态设置为selected
- (IBAction)buttonClicked:(id)sender;
{
UIButton *button = (UIButton *)sender;
if(button.tag == 0)// in your case
{
button.selected = YES;
}
// Do something
}

希望这有帮助

答案 3 :(得分:0)

设置所选状态图像的代码:

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

设置正常状态图像的代码:

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