uibutton 颜色变化(on/off)

uibutton color change(on/off)

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

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

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

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

你可以试试这个,下面的方法应该可以。两者不同。尝试任何。 突出显示的是布尔值,它会相应地改变颜色。

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

祝你好运。

更改颜色时,将按钮的突出显示状态设置为"YES"。然后当按下它时检查它是否已经突出显示,如果它然后将其更改回灰色背景(或任何你想要的颜色)并将突出显示设置为否。这样下次你按下它时,我们会看到它还没有突出显示,我们可以再次将它设置为 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];
    }
}

在您的 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。 :- 不要忘记为 toggleButton 连接 IBOutlet 和 IBAction。请告诉我你的结果。