当我只有该按钮的标签时,如何更改按钮上的图像。例如,我有20个按钮,标签设置为0到19.现在在某个动作的响应中,我有该按钮的标签5,现在我想要更改该按钮的图像。怎么可能呢?请帮忙
答案 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而导致的错误