uibutton颜色变化(开/关)

时间:2015-02-11 05:10:59

标签: xcode uibutton

我想让我的UIButton就像一个开/关按钮, 当我点击按钮时,它打开(蓝色), 如果我再次点击相同的按钮,我希望它可以关闭(默认颜色)

我已经让它在打开时可以改变颜色,

- (IBAction)OPEN:(id)sender { OPEN.backgroundColor = [UIColor colorWithRed:50.0/255.0 green:154.0/255.0 blue:168.0/255.0 alpha:1]; }

但我不知道如何再次点击时将其更改回默认颜色, 请帮忙,谢谢。

3 个答案:

答案 0 :(得分:1)

更改颜色时,将按钮的突出显示状态设置为“YES”。然后按下它时检查它是否已经突出显示,如果是,则将其改回灰色背景(或任何你想要的颜色)并将其突出显示为NO。这样下次你按下它时,我们会看到它没有突出显示,我们可以再次将它设置为YES并再次变为蓝色。

使用BOOLEAN切换按钮背景颜色。

BOOL isHighlighted;
-(IBAction)OPEN:(id)sender {
    if (isHighlighted == YES) {
        isHighlighted = NO;
        OPEN.backgroundColor = [UIColor colorWithRed:50.0/255.0 green:154.0/255.0 blue:168.0/255.0 alpha:1];
    } else if (isHighlighted == NO) {
        isHighlighted = YES;
        OPEN.backgroundColor = [UIColor colorWithRed:50.0/255.0 green:50.0/255.0 blue:50.0/255.0 alpha:1];
    }
}

答案 1 :(得分:1)

在ViewController.h文件中: -

@interface ViewController : UIViewController{

    IBOutlet UIButton *toggleBtn;
    int toggleFlag;
}
- (IBAction)onTapBtn:(id)sender;

在ViewController.m文件中: -

- (void)viewDidLoad
{
    [super viewDidLoad];

    toggleFlag = 1;
}

- (IBAction)onTapBtn:(id)sender {
    if (toggleFlag == 0) {

        // set whatever color you want for normal tap
        [toggleBtn setBackgroundColor:[UIColor grayColor]];
        [toggleBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

        toggleFlag = 1;
    }else if(toggleFlag == 1){
        // set whatever color you want after tap button
        [toggleBtn setBackgroundColor:[UIColor blueColor]];
        [toggleBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

        toggleFlag = 0;
    }

}

P.S。 : - 不要忘记将IBOutlet和IBAction连接到toggleButton。请告诉我你的结果。

答案 2 :(得分:-1)

您可以尝试使用此方法,以下方法应该可行。两者都不同。尝试任何。 如突出显示的是bool,它会相应地改变颜色。

<强> 1)

- (IBAction)buttonPressed:(id)sender
{
    UIButton *btn = (UIButton*)sender;
    [btn setBackgroundColor:[UIColor redColor]];
}

<强> 2)

- (void) setHighlighted:(BOOL)highlighted {
    [super setHighlighted:highlighted];
    if (highlighted) {
        self.backgroundColor = UIColorFromRGB(0x387038);
    }
    else {
        self.backgroundColor = UIColorFromRGB(0x5bb75b);
    }
}
祝你好运。