2012-01-04 2 views
0

Я повторно использую код, который строит UIButtons динамически (без построителя интерфейса). Я использую метод addTarget: action: forControlEvents для выполнения действия каждый раз при нажатии кнопки. Я меняю цвет фона кнопки на основе свойств setSelected и isSelected.Доступ к динамически построенным кнопкам

Я добавил кнопку сброса, чтобы отменить выбор всех кнопок одновременно. Однако мне трудно определить, как получить доступ к свойствам динамически добавленной кнопки.

код для создания кнопок выглядит следующим образом:

for(int y = 1; y < 10; y++) 
{ 

    for(int x = 1; x < 5; x++){ 
     z++; 

     aButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
     aButton.frame = CGRectMake(x*x_plot, y_plot, 60, 40); 
     [aButton setBackgroundImage:[UIImage imageNamed:@"btnUnselected.png"] forState:UIControlStateNormal]; 
     [aButton addTarget:self action:@selector(digitClick:) forControlEvents:UIControlEventTouchUpInside]; 
     [aButton setTitle:[NSString stringWithFormat:@"%d",z] forState:UIControlStateNormal]; 
     aButton.titleLabel.textColor = [UIColor blackColor]; 
     aButton.tag = z; 
     [self.view addSubview:aButton]; 
    } 
    y_plot=y_plot+45; //make a 4x9 grid of buttons 
} 
+1

вы установили 'tag', так что вы должен просто быть в состоянии сделать UIButton * butt = (UIButton *) [self.view viewWithTag: tag] '? –

+0

Спасибо, Майк! Отлично! –

ответ

0

Вы можете использовать такой код, чтобы пройти через все ваши подобозрения

NSArray *ar = self.view.subviews; 
[ar enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    if ([obj isKindOfClass:[UIButton class]]) 
    { 
     NSLog(@"I've got 'obj' that is a UIButton on the screen!!!!"); 
    } 
}]; 
Смежные вопросы