开发者

access the dynamic buttons with tag

Hello I have some codes to create dynamic button as below:

- (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;  
        } 
}

I hope开发者_开发问答 to access one dynamic button with tag

How can I do

Welcome any comment.

Thanks interdev


As rekle stated, your views will be assigned the same tag. Use his suggestion to assign the tag (i*100)+j. Then to retrieve those views from another method in the same class, you can use [UIView viewWithTag:] as follows:

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

Here are the Apple docs on viewWithTag.


Another problem you have is that you are setting every button created in the 'j' loop to the tag 'i'. This means you will 8 buttons with the same tag ID. You need to do something different with the tag based on the 'i' and 'j' indices. Maybe something like:

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

That way you can extract the 'i' and 'j' indices from the tag.


you have to have a check like the following:

if (button.tag == 1) {
.....do something
}

or a switch statement:

switch (button.tag)
 {
     case 1:
          statements
          break;

     case 2:
          statements
          break;

    //more case statements

     default:
          statements
          break;
 }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜