以编程方式更改自定义UiButton背景颜色

时间:2014-06-26 21:52:28

标签: ios objective-c uibutton

在名为" ComingHomeButton"的自定义UIButton课程中,我无法更改背景颜色

我想在不创建图像的情况下进行更改,但如果这是我必须使用的唯一方法。

每次按下按钮时,我也想更改背景颜色。

以下是我所做的不起作用:

UIColor *color = [UIColor colorWithRed:1 green:1 blue:1 alpha:0.5];
[self setBackgroundColor:color];

self指我的" ComingHomeButton"

非常感谢你: - )

3 个答案:

答案 0 :(得分:1)

您可以创建一个计数器,然后在点击按钮时循环显示颜色:

-(IBAction)buttonTapped:(id)sender {
    if (!counter) {
    counter = 0
    }
    if (counter%3 == 0) {
    self.backgroundColor = [UIColor redColor]; //or whatever custom color you want to use
    } else if (counter%3 == 1) {
    self.backgroundColor = [UIColor blueColor];
    } else if (counter%3 == 2) {
    self.backgroundColor = [UIColor greenColor];
    }
    counter++
}

您可以添加任意数量的颜色。 %表示mod函数,确保当counter大于2时,它仍将返回0到2之间的数字。

%之后的数字是要循环的颜色数。

答案 1 :(得分:0)

UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(50, 50, 300, 100)];
btn.backgroundColor = [UIColor blueColor];
[self.view addSubview:btn];

以下代码适用于使用背景按钮添加给定视图的按钮。尝试使用点符号而不是消息传递。

答案 2 :(得分:0)

-(IBAction)buttonTapped:(id)sender {
    sender.backgroundColor = [self randomColor];

}

-(UIColor *)randomColor
{
    CGFloat red = arc4random() % 255 / 255.0;
    CGFloat green= arc4random() % 255 / 255.0;
    CGFloat blue= arc4random() % 255 / 255.0;
    UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];

    return color;
}

我没有测试我不在Mac上的代码,但它应该可以工作。