【问题标题】:Toggle Button Image切换按钮图像
【发布时间】:2013-09-17 01:34:58
【问题描述】:

我有多个按钮。

它们都加载到 viewDidLoad 中。我想要它,所以一旦按下一个按钮,它就会变成另一个图像。

所以 Img1 通过 viewDidload 加载,然后一旦被按下,它就会转到 Img2

这是我目前尝试过的代码:

在viewdidload中:

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

在 ibaction 中(我尝试过,但我在猜测)

-(IBAction)ButtonAction
{

    if (btn1==0)
    {
        btn1=1;
        [btn1 setImage:[UIImage imageNamed:@"img1.png"] forState:UIControlStateNormal];

    }
    else
    {
        [btn1 setImage:[UIImage imageNamed:@"img2.png"] forState:UIControlStateNormal];
        btn1=0;

    }
}

感谢您的帮助

【问题讨论】:

    标签: ios cocoa-touch uibutton


    【解决方案1】:

    您需要确保将您的UIButton 连接到正确的选择器。另外,我会使用@property 或全局/实例变量来跟踪当前在UIButton 中的图像。下面是一些可以解决问题的代码:

    //... in @interface
    @property (nonatomic, strong) NSString *btn1ImageName;
    
    - (void)viewDidLoad {
      [super viewDidLoad];
      // ...
    
      self.btn1ImageName = @"img1.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:@"img1.png"]) ? @"img2.png" : @"img1.png";
      [btn1 setImage:[UIImage imageNamed:self.btn1ImageName] forState:UIControlStateNormal];
    }
    

    【讨论】:

      【解决方案2】:
      if (btn1==0)
      

      我不明白那部分。

      一个简单的解决方案是为选定和未选定状态设置两个不同的图像。

      btn1.selected = YES,会自动选择选中的按钮图片。 btn1.selected = NO,将自动选择未选中的按钮图像。

      【讨论】:

        猜你喜欢
        • 2013-06-20
        • 2015-04-16
        • 2021-09-11
        • 2011-09-18
        • 1970-01-01
        • 2018-08-05
        • 2014-07-11
        • 1970-01-01
        • 2014-11-30
        相关资源
        最近更新 更多