如何在标签的帮助下更改按钮的图像?

时间:2011-08-24 13:35:49

标签: iphone image button tags

当我只有该按钮的标签时,如何更改按钮上的图像。例如,我有20个按钮,标签设置为0到19.现在在某个动作的响应中,我有该按钮的标签5,现在我想要更改该按钮的图像。怎么可能呢?请帮忙

4 个答案:

答案 0 :(得分:3)

我认为你可以使用它:

for (UIButton *button in self.view.subviews) {
        if (button.tag == 5) {
            [button setBackgroundImage:[UIImage imageNamed:@"new-imagepng"] forState:UIControlStateNormal];
        }
    }

但我没有检查它。

答案 1 :(得分:2)

以下代码为您提供了您所关注的按钮(superView指的是按住按钮的任何视图):

UIButton *button5 = [superView viewWithTag:5];

然后您可以根据需要修改按钮的属性。

答案 2 :(得分:2)

UIButton *button = (UIButton *)[myView viewWithTag:myTag];
[button setImage:... forState:...];

myView变量是20个按钮的超级视图。您可以从标签中获取UIButton对象,并可以为您的州设置图像。

答案 3 :(得分:0)

使所有按钮的action相同,说@(selector)buttonPressed:。然后在你的处理程序中执行以下操作:

-(void)buttonPressed:(id)sender {
  UIButton *button = (UIButton *) sender;
  int tag = button.tag; 
  // respond as you wish using tag... for example:
  UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"img%02d.png", tag]];
  [button setImage:image forState:UIControlStateNormal];
}

还有一个警告:更好地使用整数1到20而不是0到19.这样可以避免因每个tag的默认UIView设置为0而导致的错误