2011-08-24 89 views
1

当我只有该按钮的标签时,我可以如何更改按钮上的图像。例如我有20个按钮,标签设置为0到19.现在,在一些操作的响应中,我有该按钮的标签5,现在我想更改该按钮的图像。怎么可能?请帮助如何通过标签更改按钮的图像?

回答

3

我想你可以使用它:

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

但我没有检查。

2

下面的代码给你的按钮,你是后(superView是指无论大家认为是抱着你的按钮):

UIButton *button5 = [superView viewWithTag:5]; 

那么,你认为合适,你可以修改按钮的属性。

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

myView变量是20buttons的superview。你可以从标签中获得UIButton对象,并可以为你的状态设置图像。

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的这种方式,您避免失误可能出现了一个事实,即每UIView的默认tag是设置为0.