我有一种情况我正在尝试更改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];
}
但是当我触摸任何一个时,其他四个的背景消失了 请赐教我如何解决这个问题。 提前完成。
答案 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循环也有可能出错...通过循环验证每个条件是否正确设置图像
快乐编码:)