Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
If statement 使用RGB更改按钮背景颜色_If Statement_Xcode6_Rgb_Uicolor - Fatal编程技术网

If statement 使用RGB更改按钮背景颜色

If statement 使用RGB更改按钮背景颜色,if-statement,xcode6,rgb,uicolor,If Statement,Xcode6,Rgb,Uicolor,我相信这将是一个简单而明显的解决办法,但我不明白为什么会发生这种情况 基本上我想编码一个按钮来改变它的背景颜色,这取决于当前的颜色。下面的代码可以工作,但它在xcode中使用了UI颜色 -(IBAction)Button1Colour:(id)sender{ if (_Button1.backgroundColor == nil) { _Button1.backgroundColor = [UIColor orangeColor];} else if (_Button1.backgr

我相信这将是一个简单而明显的解决办法,但我不明白为什么会发生这种情况

基本上我想编码一个按钮来改变它的背景颜色,这取决于当前的颜色。下面的代码可以工作,但它在xcode中使用了UI颜色

-(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);}
现在,如果我使用RGB颜色,如下所示:

-(IBAction)Button1Colour:(id)sender{

if (_Button1.backgroundColor == nil) {
    _Button1.backgroundColor = [UIColor colorWithRed:(216/255.f) green:(146/255.f) blue:(48/255.f) alpha:0.3];}

else if (_Button1.backgroundColor == [UIColor colorWithRed:(216/255.f) green:(146/255.f) blue:(48/255.f) alpha:0.3]) {
    _Button1.backgroundColor = [UIColor colorWithRed:(33/255.f) green:(141/255.f) blue:(8/255.f) alpha:0.3];}

else (_Button1.backgroundColor = nil);}
该按钮将仅从nil循环至琥珀色循环至nil等,并忽略else if语句


如果您试图通过比较3组浮点数来确定按钮是否为特定颜色,请提供任何建议或帮助

第二个if测试失败,因为您无法比较
CGFloat
s是否精确相等

更简单的方法是对按钮进行子类化,并添加一个BOOL属性,指示它是否被“切换”。然后,您可以检查属性,只需在一种颜色和另一种颜色之间进行更改

假设您添加的属性名为绿色,它将如下所示

@property (assign, getter=isGreen) BOOL green;
你可以这样更简洁地改变颜色

Button1.backgroundColor = [Button1 isGreen] ? [UIColor orangeColor] : [UIColor greenColor];
Button1.green = !Button1.green;

另外,命名约定建议类以大写字母开头,例如,
UIButton
。实例变量以小写字母开头,例如,
button1

您试图通过比较3组浮点数来确定按钮是否为特定颜色

第二个if测试失败,因为您无法比较
CGFloat
s是否精确相等

更简单的方法是对按钮进行子类化,并添加一个BOOL属性,指示它是否被“切换”。然后,您可以检查属性,只需在一种颜色和另一种颜色之间进行更改

假设您添加的属性名为绿色,它将如下所示

@property (assign, getter=isGreen) BOOL green;
你可以这样更简洁地改变颜色

Button1.backgroundColor = [Button1 isGreen] ? [UIColor orangeColor] : [UIColor greenColor];
Button1.green = !Button1.green;

另外,命名约定建议类以大写字母开头,例如,
UIButton
。实例变量以小写字母开头,例如,
button1

是否有条件进行计算?是否有条件进行计算?