利用for循环创建5个button,其中对这个五个button一定要赋上tag值 ,因为下面的点击操作我们要用到;
看for循环的代码:
for (int i=0; i < 5; i++) {
UIButton *button = [[UIButton alloc] init];
button.frame = CGRectMake(10 + 60*i, 100, 50, 40);
button.tag = 100 + i;
[button setTitle:[NSString stringWithFormat:@"button%d",i] forState:UIControlStateNormal];
[button setBackgroundColor:[UIColor lightGrayColor]];
button.titleLabel.font = [UIFont systemFontOfSize:13];
[button addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
在click:点击方法中有 UIButton *btn = (UIButton *)[self.view viewWithTag:100+i] 这么一行代码,是根据tag值获取对应for循环中的某个button;
代码如下:
- (void)click:(UIButton *)sender {
for (int i=0; i < 5; i++) {
UIButton *btn = (UIButton *)[self.view viewWithTag:100+i];
if (sender.tag - 100 == i) {
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor purpleColor]];
}else{
[btn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[btn setBackgroundColor:[UIColor lightGrayColor]];
}
}
}