您好我有一些代码可以创建动态按钮,如下所示:
- (void)viewDidLoad {
for (int i = 0; i < 9; i++)
for (int j = 0; j < 8; j++) {
forControlEvents:UIControlEventTouchDown];
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(10+i*34 , 130+j*30, 30 , 20 );
[button setTitle:@"00" forState: UIControlStateNormal];
[button addTarget:self action:@selector(tapped:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
button.tag = i;
}
}
我希望能够访问一个标记为
的动态按钮我该怎么办
欢迎任何评论。
感谢interdev
答案 0 :(得分:1)
您遇到的另一个问题是您将在'j'循环中创建的每个按钮设置为标记'i'。这意味着您将有8个具有相同标签ID的按钮。您需要根据“i”和“j”索引对标记执行不同的操作。也许是这样的:
button.tag = (i*100)+j;
这样你就可以从标签中提取'i'和'j'索引。
答案 1 :(得分:1)
正如rekle所述,您的观点将被分配相同的标签。使用他的建议分配标记(i*100)+j
。然后,要从同一个类中的另一个方法检索这些视图,可以使用[UIView viewWithTag:]
,如下所示:
for (int i = 0; i < 9; i++)
for (int j = 0; j < 8; j++) {
UIButton *button = [self.view viewWithTag:(i*100)+j];
// Do more stuff here...
}
}
答案 2 :(得分:0)
你必须得到如下支票:
if (button.tag == 1) {
.....do something
}
或switch语句:
switch (button.tag)
{
case 1:
statements
break;
case 2:
statements
break;
//more case statements
default:
statements
break;
}