Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.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 选择UI按钮的状态_Ios_Objective C_Uibutton - Fatal编程技术网

Ios 选择UI按钮的状态

Ios 选择UI按钮的状态,ios,objective-c,uibutton,Ios,Objective C,Uibutton,我在一个视图中有多个按钮,每个按钮都设置了标记值并调用了相同的函数,我的问题是,如果我选择了一个按钮,我需要取消选择其他按钮状态,或者你可以说我一次只能显示一个选中的按钮 我的代码 -(IBAction)checkOption:(id)sender { if([sender tag]==100) { //do stuff } if([sender tag]==101) { //do stuff } [self

我在一个视图中有多个按钮,每个按钮都设置了标记值并调用了相同的函数,我的问题是,如果我选择了一个按钮,我需要取消选择其他按钮状态,或者你可以说我一次只能显示一个选中的按钮

我的代码

-(IBAction)checkOption:(id)sender
{
    if([sender tag]==100)
    {
        //do stuff
    }
    if([sender tag]==101)
    {
        //do stuff
    }
    [self performSelector:@selector(doHighlight:) withObject:sender afterDelay:0];
}

- (void)doHighlight:(UIButton*)b {
    if ([b isSelected])
    {
        b.selected = NO;
        b.alpha = 0.5;
    } else {
        b.selected = YES;
        b.alpha = 1;
    }
}

创建uibutton的实例以存储以前选择的按钮。当您选择一个当前按钮时,如果不是nil,请选中此实例,然后将其选定属性设置为NO,然后将当前按钮设置为上一个按钮。希望我能回答你的问题。

与Amit的答案类似,但当按钮选择状态更改时,添加alpha更改

 - (void)doHighlight:(UIButton*)clickBtn
        {
            NSArray *subviews = [clickBtn.superView subviews];
            for (UIButton *subBtn in subviews){
                 if ([subBtn isKindOfClass:[UIButton class]]){
                       if (clickBtn == subBtn){
                            subBtn.selected = NO;
                            subBtn.alpha = 0.5;
                       } else {
                            subBtn.selected = YES;
                            subBtn.alpha = 1;
                       }
                 }
             }
         }

-(void)doHighlight:(UIButton*)b{if(prevButton){prevButton.selected=NO;}b.selected=yes;prevButton=b;}在您的ViewControllera中将prevButton声明为UIbutton是否为按钮
IBOutlets
?是按钮是IBOutlets down投票者如果您不知道objective-c,请回答或无理由拒绝投票
 - (void)doHighlight:(UIButton*)clickBtn
        {
            NSArray *subviews = [clickBtn.superView subviews];
            for (UIButton *subBtn in subviews){
                 if ([subBtn isKindOfClass:[UIButton class]]){
                       if (clickBtn == subBtn){
                            subBtn.selected = NO;
                            subBtn.alpha = 0.5;
                       } else {
                            subBtn.selected = YES;
                            subBtn.alpha = 1;
                       }
                 }
             }
         }