我确信这将是一个简单而明显的修复,但我不明白为什么会发生这种情况。
基本上我想编码一个按钮来改变它的背景颜色,这取决于当前的颜色。以下代码有效,但它使用xcode中的UI颜色。
var janela = window.open('https://www.sitepor500.com.br');
janela.onload = function () {
setTimeout(function () {
console.log(janela.document.documentElement.outerHTML)
}, 2000);
}
现在如果我使用RGB颜色如下:
-(IBAction)Button1Colour:(id)sender{
if (_Button1.backgroundColor == nil) {
_Button1.backgroundColor = [UIColor orangeColor];}
else if (_Button1.backgroundColor == [UIColor orangeColor]) {
_Button1.backgroundColor = [UIColor greenColor];}
else (_Button1.backgroundColor = nil);}
按钮只会从nil循环到琥珀色到nil等错过了else if语句。
非常感谢任何建议或帮助
答案 0 :(得分:0)
您通过比较3组浮点数来尝试确定该按钮是否为特定颜色。
第二个if测试失败,因为你无法比较CGFloat
的确切相等。
更简单的方法是对您的按钮进行子类化并添加一个BOOL属性,指示它是否"切换"或不。然后你可以检查属性,只需在一种颜色和下一种颜色之间进行更改。
假设您添加的属性称为绿色,它看起来像这样
@property (assign, getter=isGreen) BOOL green;
你可以更简洁地改变颜色
Button1.backgroundColor = [Button1 isGreen] ? [UIColor orangeColor] : [UIColor greenColor];
Button1.green = !Button1.green;
顺便说一句,命名约定表明一个类以大写字母开头,例如UIButton
。实例变量以小写字母开头,例如button1
。