只保留一个UIButton突出显示?

时间:2013-07-30 12:38:43

标签: ios uibutton highlight

我有一张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个)按钮并始终突出显示它。

我该怎么办?谢谢。

1 个答案:

答案 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];
       }];
    }
}