当我们单击按钮时如何更改图像?

Posted

技术标签:

【中文标题】当我们单击按钮时如何更改图像?【英文标题】:How to change a image when when we click a button? 【发布时间】:2017-08-02 05:35:46 【问题描述】:

我正在使用单选按钮,为此我正在编写这样的代码。

float x = 40;
float y = 0;
for (int i=0; i<self.radioBtnTagArr.count; i++) 

        self.radioButton = [UIButton buttonWithType:UIButtonTypeCustom];
        self.radioButton.frame = CGRectMake(x, y+35, 35.0, 35.0);
        [self.radioButton setImage:[UIImage imageNamed:@"radio_empty.png"] forState:UIControlStateNormal];
        [self.radioButton addTarget:self action:@selector(radioBtnMethod:) forControlEvents:UIControlEventTouchUpInside];
        [self.scrollView addSubview:self.radioButton];
        self.radioButton.tag = [[self.radioBtnTagArr objectAtIndex:i] intValue];

        y = y+70;

    

这个“self.radioBtnTagArr”来自服务器(标签来自服务器),基于该计数,我想创建单选按钮,并将标签分配给单选按钮。

- (void) radioBtnMethod:(UIButton *)sender 

for (int i=0; i<self.radioBtnTagArr.count; i++) 

    if (sender.tag == [[self.radioBtnTagArr objectAtIndex:i] intValue]) 

        [self.radioButton setImage:[UIImage imageNamed:@"radio.png"] forState:UIControlStateSelected];

        [self.radioButton setSelected:YES];

    



现在的问题是,当我单击第一个单选按钮时,最后一个单选按钮被选中,如下图所示...

我只希望当我们单击第一个按钮时选择第一个按钮状态,如果我们单击第二个按钮第二个按钮状态选择这样...

【问题讨论】:

你可以在这里查看我的答案***.com/questions/44618690/… 【参考方案1】:

喜欢创建另一个数组来保存 UIbutton,例如

第一步

@property (nonatomic, strong)  NSMutableArray *buttonArray;

第二步

将所有按钮添加到 buttonArray

   // allocate the memory for your array
  buttonArray = [NSMutableArray array];

for (int i=0; i<self.radioBtnTagArr.count; i++) 
        // create instance value of UIButton
        UIButton *radioButton = [UIButton buttonWithType:UIButtonTypeCustom];
         radioButton.frame = CGRectMake(x, y+35, 35.0, 35.0);
        [radioButton setImage:[UIImage imageNamed:@"radio_empty.png"] forState:UIControlStateNormal];
        [radioButton addTarget:self action:@selector(radioBtnMethod:) forControlEvents:UIControlEventTouchUpInside];
        [self.scrollView addSubview:self.radioButton];

        y = y+70;
       // add the object to array
       [buttonArray addObject:radioButton];

    

第三步

在目标内部

 - (void) radioBtnMethod:(UIButton *)sender 

  // reset the previous selection
  for (UIButton *getradioButton in buttonArray) 
       [getradioButton setImage:[UIImage imageNamed:@"radio_empty.png"] forState:UIControlStateNormal];

   // set the current selection
   [sender setImage:[UIImage imageNamed:@"radio.png"] forState:UIControlStateNormal];


【讨论】:

@Anbu.Karthik ***.com/questions/45453747/…

以上是关于当我们单击按钮时如何更改图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用方法更改按钮的 on_release 功能?

如何在单击按钮操作时更改图像

更改其余应用程序使用的按钮图像

如何通过单击选项卡来更改操作栏菜单按钮

Swift:如何在单击提交按钮时更改 UIButton 图像

如何使用导航抽屉打开和关闭更改按钮图像