我正在尝试更改按钮颜色,然后点击它但它不起作用,因为这样做我必须检测按钮当前必须更改为下一种颜色的颜色。
if (sender.backgroundColor == [UIColor clearColor]) {
[sender setBackgroundColor:[UIColor grayColor]];
} else if (sender.backgroundColor == [UIColor grayColor]) {
[sender setBackgroundColor:[UIColor blueColor]];
} else if (sender.backgroundColor == [UIColor blueColor]) {
[sender setBackgroundColor:[UIColor redColor]];
} else {
[sender setBackgroundColor:[UIColor clearColor]];
}
但遗憾的是它不起作用。 有谁知道我怎样才能做到这一点?
答案 0 :(得分:0)
UIButton *buttonTapped = sender;
if (buttonTapped.backgroundColor == [UIColor clearColor]) {
[buttonTapped setBackgroundColor:[UIColor grayColor];
} else if (buttonTapped.backgroundColor == [UIColor grayColor) {
[buttonTapped setBackgroundColor:[UIColor blueColor];
} else if (buttonTapped.backgroundColor == [UIColor blueColor) {
[buttonTapped setBackgroundColor:[UIColor redColor];
} else {
[buttonTapped setBackgroundColor:[UIColor clearColor]];
}
试试这个?
答案 1 :(得分:0)
这个问题是您使用“==”来比较颜色,这些颜色是对象 - 而不是基元。你想要做的是比较这样的颜色:
if ([buttonTapped.backgroundColor isEqual: [UIColor clearColor]]) {
[buttonTapped setBackgroundColor:[UIColor grayColor];
}
......等等。
答案 2 :(得分:0)
UIButton *btn = (UIButton*)sender;
if ([btn.backgroundColor isEqual:someOtherColor]) {
[buttonTapped setBackgroundColor:[UIColor redColor];
}