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。请告诉我你的结果。
我想让我的 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。请告诉我你的结果。