2013-07-30 48 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

它適合你嗎? –