iPhone:无法更改按钮的背景

时间:2011-05-06 14:32:35

标签: iphone uibutton uicontrol

我有一种情况我正在尝试更改4个按钮的背景图像:

if(some condition){
[firstSeverityButton setBackgroundImage:[UIImage imageNamed:@"greySeverity.jpg"] forState:UIControlStateDisabled]; 
[secondSeverityButton setBackgroundImage:[UIImage imageNamed:@"greySeverity.jpg"] forState:UIControlStateNormal];
[thirdSeverityButton setBackgroundImage:[UIImage imageNamed:@"greySeverity.jpg"] forState:UIControlStateNormal];
[fourthSeverityButton setBackgroundImage:[UIImage imageNamed:@"greySeverity.jpg"] forState:UIControlStateNormal]; 
[fifthSeverityButton setBackgroundImage:[UIImage imageNamed:@"redSeverity.png"] forState:UIControlStateNormal];
 }

但是当我触摸任何一个时,其他四个的背景消失了 请赐教我如何解决这个问题。 提前完成。

1 个答案:

答案 0 :(得分:0)

可能您正在寻找无线电按钮,您可以写下自定义类的单选按钮并轻松完成工作

[firstSeverityButton setBackgroundImage:[UIImage imageNamed:@"greySeverity.jpg"] forState:UIControlStateDisabled]; 

这个代码实际上工作正常,每个控制状态。我认为问题在于按钮的初始图像和当前按钮状态。(在笔尖和代码中)

可以使用

更改按钮的状态
button.enabled=yes;
button.highlighted = NO;
button.selected = NO;

当你专门为控制状态设置图像时,图像上的变化出现在那个特定的控制状态。所以变化取决于初始图像和按钮的当前控制状态

注意:我们正在对背景图像应用更改。按钮有一个图像,可以实际隐藏背景图像的变化。如果设置图像

[firstSeverityButton setImage:[UIImage imageNamed:@"greySeverity.jpg"] forState:UIControlStateDisabled]; 

代码中的任何地方,也许它可以隐藏您的背景图像设置。

你的if-else循环也有可能出错...通过循环验证每个条件是否正确设置图像

快乐编码:)