2010-02-11 62 views
0

你好,我有一些代码来创建如下动态按钮:访问与标签动态按钮

- (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中

回答

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... 
    } 
} 

这里是Apple docs on viewWithTag

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; 
} 
+0

我的意思是从其他函数访问按钮,同一类 感谢 – arachide 2010-02-11 02:12:18

+0

例如,我想换一个按钮的背景图像, 我怎样才能动态按钮的其他功能相同的类手柄? 感谢 – arachide 2010-02-11 02:29:31

+0

我需要的按钮保存到NSMutableArray里? – arachide 2010-02-11 04:17:23

1

你有另外一个问题是,你要设置的每个按钮在'j'循环中创建标记'i'。这意味着您将有8个具有相同标签ID的按钮。你需要根据'i'和'j'指数做一些与标签不同的事情。可能是这样的:

button.tag = (i*100)+j; 

这样你就可以从标记中提取'i'和'j'索引。