更改按钮背景颜色

时间:2015-03-31 02:43:31

标签: ios xcode button background-color

我正在尝试更改按钮颜色,然后点击它但它不起作用,因为这样做我必须检测按钮当前必须更改为下一种颜色的颜色。

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]];
}

但遗憾的是它不起作用。 有谁知道我怎样才能做到这一点?

3 个答案:

答案 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];
}