получить доступ к динамическим кнопкам с тегом - PullRequest
0 голосов
/ 11 февраля 2010

Здравствуйте, у меня есть несколько кодов для создания динамической кнопки, как показано ниже:

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

Ответы [ 3 ]

1 голос
/ 13 февраля 2010

Другая проблема, с которой вы столкнулись, заключается в том, что вы устанавливаете каждую кнопку, созданную в цикле 'j', на тег 'i'. Это означает, что у вас будет 8 кнопок с одинаковым идентификатором тега. Вам нужно сделать что-то другое с тегом, основанным на индексах 'i' и 'j'. Может быть что-то вроде:

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

Таким образом, вы можете извлечь индексы 'i' и 'j' из тега.

1 голос
/ 13 февраля 2010

Как говорилось в 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 по viewWithTag .

0 голосов
/ 11 февраля 2010

Вы должны иметь чек, подобный следующему:

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

или оператор переключения:

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

     case 2:
          statements
          break;

    //more case statements

     default:
          statements
          break;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...