我有一张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 :(得分:0)
编辑您的按钮选择成为:
- (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];
}];
}
}