1

我有一种情况,我正在尝试更改 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];
 }

但是当我触摸任何一个时,其他四个的背景就会消失。请告诉我如何解决他的问题。

4

1 回答 1

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 循环中也可能出现错误...遍历循环并验证每个条件是否正确设置了图像。

于 2012-03-28T06:53:40.560 回答