Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 只突出显示一个按钮?_Ios_Uibutton_Highlight - Fatal编程技术网

Ios 只突出显示一个按钮?

Ios 只突出显示一个按钮?,ios,uibutton,highlight,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]; } for(int

我有一张UIButton表:

UIButton *buttons [16];
我想做的是,如果按下按钮,只突出显示一个按钮

我在循环中创建、初始化它们:

for(int i = 0 ; i < 16 ; i++)
{
    // Initializing the buttons...
    [self performSelector:@selector(buttonSelected:) withObject:buttons[i] afterDelay:0.0];
}
for(int i=0;i<16;i++)
{
//正在初始化按钮。。。
[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;
    }];
}
-(void)按钮选择:(UIButton*)发送方{
对于(int i=0;i<16;i++)
{
[[NSOperationQueue mainQueue]添加操作与块:^{
按钮[i]。高亮显示=否;
}];
}
[自我提示:发件人];
}
-(无效)doHighlight:(ui按钮*)b{
[[NSOperationQueue mainQueue]添加操作与块:^{
b、 突出显示=是;
}];
}
但它不起作用,这只会高亮显示最后一个(第16个)按钮,并使其始终高亮显示


我该怎么办?谢谢

编辑您的按钮选择成为:

- (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];
       }];
    }
}
-(void)按钮选择:(UIButton*)发送方{
对于(int i=0;i<16;i++)
{
[[NSOperationQueue mainQueue]添加操作与块:^{
按钮[i]。高亮显示=否;
if(发送方==按钮[i])[自高亮显示:发送方];
}];
}
}

为按钮制作标签。并检查标签是否为20,例如突出显示。