繁体   English   中英

如何在UIButton中更改UIButton背景图像单击iOS

[英]How to change the UIButton background images in UIButton click in ios

一个UIButton在启动应用程序时要显示“ workout_heart.png”。 为该按钮编写按钮单击动作。 当用户单击该按钮时,该图像要更改“ workout_heart_red.png”。 再次单击该按钮意味着该图像变为“ workout_heart.png”。 它想要更改备用。 我该如何帮助我!!!

试试这个,声明状态为实例变量

- (IBAction)buttonTapped:(id)sender {
   if (state == 0) {
      state = 1;
      [btn setBackgroundImage:[UIImage imageNamed:@"workout_heart_red.png"] forState:UIControlStateHighlighted];
     }
    else if (state == 1){
       state = 0;
       [btn setBackgroundImage:[UIImage imageNamed:@"workout_heart.png"] forState:UIControlStateNormal];
     }
}
- (IBAction)btn_MyButton_Click:(id)sender
{
    if ([sender isSelected] == YES)
    {
        [sender setSelected:NO];
        [btn setBackgroundImage:[UIImage imageNamed:@"workout_heart.png"] forState:UIControlStateNormal];
    }
    else
    {
        [sender setSelected:YES];
         [btn setBackgroundImage:[UIImage imageNamed:@"workout_heart_red.png"] forState:UIControlStateNormal];
    }
}

尝试这个

[btn setBackgroundImage:[UIImage imageWithString:@"workout_heart.png" forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageWithString:@"workout_heart_red.png" forState:UIControlStateHighlighted];

试试这个代码

对于按钮,为选定状态和正常状态设置背景图片,如下所示

[<btn> setBackgroundImage:[UIImage imageNamed:@"workout_heart.png"] forState:UIControlStateNormal];
[<btn> setBackgroundImage:[UIImage imageNamed:@"workout_heart_red.png"] forState:UIControlStateSelected];

并编写如下的动作逻辑

- (IBAction)buttonTapped:(id)sender {
    UIButton *tempButton = (UIButton *)sender;
    if(tempButton.isSelected){
        [tempButton setSelected:NO];
    } else {
        [tempButton setSelected:YES];
    }
}
- (void)viewDidLoad {
[super viewDidLoad];
// ...

self.btn1ImageName = @"workout_heart.png";
btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
[btn1 setFrame:CGRectMake(367, 117, 97, 25)];
[btn1 setImage:[UIImage imageNamed:self.btn1ImageName] forState:UIControlStateNormal];
[btn1 addTarget:self action:@selector(toggleImage:)   forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn1];
}

- (void)toggleImage:(UIButton *)btn1 {
self.btn1ImageName = ([self.btn1ImageName isEqualToString:@"workout_heart.png"]) ? @"workout_heart_red.png" : @"workout_heart.png";
[btn1 setImage:[UIImage imageNamed:self.btn1ImageName] forState:UIControlStateNormal];
}

默认情况下在xib中设置背景图片,例如“ workout_heart.png”,然后检查状态,即

if(button.selected)
{
  [button setBackgroundImage:[UIImage imageNamed:"workout_heart_red.png"] forState: UIControlStateNormal];
}
else
{
[button setBackgroundImage:[UIImage imageNamed:"workout_heart.png"] forState: UIControlStateNormal];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM