如何通过标签更改按钮的图像?
问题描述:
当我只有该按钮的标签时,我可以如何更改按钮上的图像。例如我有20个按钮,标签设置为0到19.现在,在一些操作的响应中,我有该按钮的标签5,现在我想更改该按钮的图像。怎么可能?请帮助如何通过标签更改按钮的图像?
答
我想你可以使用它:
for (UIButton *button in self.view.subviews) {
if (button.tag == 5) {
[button setBackgroundImage:[UIImage imageNamed:@"new-imagepng"] forState:UIControlStateNormal];
}
}
但我没有检查。
答
下面的代码给你的按钮,你是后(superView
是指无论大家认为是抱着你的按钮):
UIButton *button5 = [superView viewWithTag:5];
那么,你认为合适,你可以修改按钮的属性。
答
UIButton *button = (UIButton *)[myView viewWithTag:myTag];
[button setImage:... forState:...];
myView变量是20buttons的superview。你可以从标签中获得UIButton对象,并可以为你的状态设置图像。
答
使所有按钮的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.