【问题标题】:iphone: unable to change background of buttonsiphone:无法更改按钮的背景
【发布时间】:2011-05-06 14:32:34
【问题描述】:

我正在尝试像这样更改 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];
 }

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

【问题讨论】:

  • 您是否以相同的方法为每个按钮或其他东西调用该代码?
  • 是的,事实上在 'if-else' 块的同一块中
  • 您确定不是意外更改它们吗?您是否在调试中单步执行了您的代码?
  • 初始屏幕有 5 个灰色按钮,现在假设用户触摸第一个按钮,它的背景应该会改变,下一次如果用户改变第 5 个按钮,其他所有按钮都应该变回灰色,只有第 5 个按钮应该有红色背景跨度>

标签: iphone uibutton uicontrol


【解决方案1】:

也许你正在寻找单选按钮,你可以为单选按钮写一个自定义类,让事情变得容易。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多