2013-07-30 4 views
1

У меня есть таблица UIButton:Сохранять только один UIButton?

UIButton *buttons [16]; 

То, что я хочу сделать, это держать только одна кнопка выделена, если она нажата.

создать, инициализировать их в цикле:

for(int i = 0 ; i < 16 ; i++) 
{ 
    // Initializing the buttons... 
    [self performSelector:@selector(buttonSelected:) withObject:buttons[i] afterDelay:0.0]; 
} 

Тогда:

- (void)buttonSelected:(UIButton*)sender { 
    for(int i = 0 ; i < 16 ; i++) 
    { 
     [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
      buttons[i].highlighted = NO; 
     }]; 
    } 
    [self doHighlight:sender]; 
} 

- (void)doHighlight:(UIButton*)b { 
     [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
     b.highlighted = YES; 
    }]; 
} 

Но это не работает, это только подчеркивает последнюю кнопку (16) и держит его всегда выделяется ,

Что мне делать? Благодарю.

+0

Сделать тег для вашей кнопки. И проверьте тег, если его выделено 20. – user2545330

ответ

0

Корректировать buttonSelected стать:

- (void)buttonSelected:(UIButton*)sender { 
    for(int i = 0 ; i < 16 ; i++) 
    { 
     [[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
      buttons[i].highlighted = NO; 
      if(sender == buttons[i])[self doHighlight:sender]; 
     }]; 
    } 
} 
+0

Это сработало для вас? –

Смежные вопросы