如何在ios中选中和取消选中按钮

如何在ios中选中和取消选中按钮,ios,objective-c,Ios,Objective C,我是iOS初学者,在我的项目中,我为用户插入了“3”个按钮“检查”和“取消检查”,如下图所示 在这里,我的主要要求是当我点击“选中”按钮时,它应该是“未选中的”,当我点击“未选中”按钮时,它应该是“选中的”,如下图所示 剩下的两个按钮必须是“未选中的”,为此,我写了下面的代码,但这是一个太长的过程。有人能解释一下简单而简短的过程吗 我的代码:- 只要尝试下面的代码,它的简单解决方案 BOOL checked; -(void)viewDidLoad { checked = YES; /

我是iOS初学者,在我的项目中,我为用户插入了“3”个按钮“检查”和“取消检查”,如下图所示

在这里,我的主要要求是当我点击“选中”按钮时,它应该是“未选中的”,当我点击“未选中”按钮时,它应该是“选中的”,如下图所示

剩下的两个按钮必须是“未选中的”,为此,我写了下面的代码,但这是一个太长的过程。有人能解释一下简单而简短的过程吗

我的代码:-
只要尝试下面的代码,它的简单解决方案

BOOL checked;
-(void)viewDidLoad {
    checked = YES;  //Set depending on your initial state
}

-(IBACtion)pressed:(UIButton *)sender {
    checked = !checked;
    [sender setImage:[UIImage imageNamed:((checked) ? @"check2.png" : @"NOTCHECKEDIMAGE.png")] forState:UIControlStateNormal];
}
可能会对您有所帮助。

另一个解决方案 这里还有Diff库,你也可以试试


  • 只要尝试下面的代码,它的简单解决方案

    BOOL checked;
    -(void)viewDidLoad {
        checked = YES;  //Set depending on your initial state
    }
    
    -(IBACtion)pressed:(UIButton *)sender {
        checked = !checked;
        [sender setImage:[UIImage imageNamed:((checked) ? @"check2.png" : @"NOTCHECKEDIMAGE.png")] forState:UIControlStateNormal];
    }
    
    可能会对您有所帮助。

    另一个解决方案 这里还有Diff库,你也可以试试


  • 请喜欢。太简单了

    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
        [button1 addTarget:self
                    action:@selector(aMethod1:)
          forControlEvents:UIControlEventTouchUpInside];
        button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
    
        UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
        UIImage *selected = [UIImage imageNamed:@"check.png"];
    
        [button1 setImage:btnImage1 forState:UIControlStateNormal];
        [button1 setImage:selected forState:UIControlStateSelected];
    
        button1.selected = NO;
    
    
    
    
    - (void)aMethod1:(UIButton *)btn{
        btn.selected = !btn.selected;
    }
    

    请喜欢。太简单了

    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
        [button1 addTarget:self
                    action:@selector(aMethod1:)
          forControlEvents:UIControlEventTouchUpInside];
        button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
    
        UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
        UIImage *selected = [UIImage imageNamed:@"check.png"];
    
        [button1 setImage:btnImage1 forState:UIControlStateNormal];
        [button1 setImage:selected forState:UIControlStateSelected];
    
        button1.selected = NO;
    
    
    
    
    - (void)aMethod1:(UIButton *)btn{
        btn.selected = !btn.selected;
    }
    

    试试这个,会帮助你,让它变得简单

     @interface ViewController ()
            {
                int check1;
                int check2;
                int check3;
    
                UIButton * button1;
                UIButton * button2;
                UIButton * button3;
            }
            
                
    
    
      @end
        
            
        @implementation ViewController
            
                
    
    
    
    
         - (void)viewDidLoad {
                [super viewDidLoad];
    
                check1 = 0;
                check2 = 0;
                check3 = 0;
    
                button1 = [UIButton buttonWithType:UIButtonTypeCustom];
                [button1 addTarget:self
                           action:@selector(checkNdUncheckButtons:)
                 forControlEvents:UIControlEventTouchUpInside];
                button1.tag = 100;
                button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
                UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
                [button1 setImage:btnImage1 forState:UIControlStateNormal];
                [self.view addSubview:button1];
    
                button2 = [UIButton buttonWithType:UIButtonTypeCustom];
                [button2 addTarget:self
                            action:@selector(checkNdUncheckButtons:)
                  forControlEvents:UIControlEventTouchUpInside];
                button2.tag = 200;
                button2.frame = CGRectMake(50.0, 100.0, 30.0, 30.0);
                UIImage *btnImage2 = [UIImage imageNamed:@"uncheck.png"];
                [button2 setImage:btnImage2 forState:UIControlStateNormal];
                [self.view addSubview:button2];
    
                button3 = [UIButton buttonWithType:UIButtonTypeCustom];
                [button3 addTarget:self
                            action:@selector(checkNdUncheckButtons:)
                  forControlEvents:UIControlEventTouchUpInside];
                button3.tag = 300;
                button3.frame = CGRectMake(100.0, 100.0, 30.0, 30.0);
                UIImage *btnImage3 = [UIImage imageNamed:@"uncheck.png"];
                [button3 setImage:btnImage3 forState:UIControlStateNormal];
                [self.view addSubview:button3];
    
            }
    
        -(void)checkNdUncheckButtons :(id)sender{
                UIButton *selectedButton = (UIButton*)sender;
          UIImage *checkimage = [UIImage imageNamed:@"check.png"];
                    UIImage *unCheckImage = [UIImage imageNamed:@"uncheck.png"];
    
                if (selectedButton.tag == 100) {
    if (button1.image == checkimage) {
    [button1 setImage:unCheckImage forState:UIControlStateNormal];
    } else {
                    [button1 setImage:checkimage forState:UIControlStateNormal];
    }
                    [button2 setImage:unCheckImage forState:UIControlStateNormal];
                    [button3 setImage:unCheckImage forState:UIControlStateNormal];
    
    
                }
                else if (selectedButton.tag == 200){
    
                    [button1 setImage:unCheckImage forState:UIControlStateNormal];
    if (button2.image == checkimage) {
    [button2 setImage:unCheckImage forState:UIControlStateNormal];
    }
    else {
                    [button2 setImage:checkimage forState:UIControlStateNormal];
    }
                    [button3 setImage:unCheckImage forState:UIControlStateNormal];
                }
        else {
         [button1 setImage:unCheckImage forState:UIControlStateNormal];
                    [button2 setImage:unCheckImage forState:UIControlStateNormal];
    if (button3.image == checkimage) {
    [button3 setImage:unCheckImage forState:UIControlStateNormal];
    }
    else {
                    [button3 setImage:checkimage forState:UIControlStateNormal];
    }
            }
            
            
            
            
    

    试着理解代码,然后在代码中实现,然后去做

    试试这个,它会帮助你,让你变得简单

     @interface ViewController ()
            {
                int check1;
                int check2;
                int check3;
    
                UIButton * button1;
                UIButton * button2;
                UIButton * button3;
            }
            
                
    
    
      @end
        
            
        @implementation ViewController
            
                
    
    
    
    
         - (void)viewDidLoad {
                [super viewDidLoad];
    
                check1 = 0;
                check2 = 0;
                check3 = 0;
    
                button1 = [UIButton buttonWithType:UIButtonTypeCustom];
                [button1 addTarget:self
                           action:@selector(checkNdUncheckButtons:)
                 forControlEvents:UIControlEventTouchUpInside];
                button1.tag = 100;
                button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
                UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
                [button1 setImage:btnImage1 forState:UIControlStateNormal];
                [self.view addSubview:button1];
    
                button2 = [UIButton buttonWithType:UIButtonTypeCustom];
                [button2 addTarget:self
                            action:@selector(checkNdUncheckButtons:)
                  forControlEvents:UIControlEventTouchUpInside];
                button2.tag = 200;
                button2.frame = CGRectMake(50.0, 100.0, 30.0, 30.0);
                UIImage *btnImage2 = [UIImage imageNamed:@"uncheck.png"];
                [button2 setImage:btnImage2 forState:UIControlStateNormal];
                [self.view addSubview:button2];
    
                button3 = [UIButton buttonWithType:UIButtonTypeCustom];
                [button3 addTarget:self
                            action:@selector(checkNdUncheckButtons:)
                  forControlEvents:UIControlEventTouchUpInside];
                button3.tag = 300;
                button3.frame = CGRectMake(100.0, 100.0, 30.0, 30.0);
                UIImage *btnImage3 = [UIImage imageNamed:@"uncheck.png"];
                [button3 setImage:btnImage3 forState:UIControlStateNormal];
                [self.view addSubview:button3];
    
            }
    
        -(void)checkNdUncheckButtons :(id)sender{
                UIButton *selectedButton = (UIButton*)sender;
          UIImage *checkimage = [UIImage imageNamed:@"check.png"];
                    UIImage *unCheckImage = [UIImage imageNamed:@"uncheck.png"];
    
                if (selectedButton.tag == 100) {
    if (button1.image == checkimage) {
    [button1 setImage:unCheckImage forState:UIControlStateNormal];
    } else {
                    [button1 setImage:checkimage forState:UIControlStateNormal];
    }
                    [button2 setImage:unCheckImage forState:UIControlStateNormal];
                    [button3 setImage:unCheckImage forState:UIControlStateNormal];
    
    
                }
                else if (selectedButton.tag == 200){
    
                    [button1 setImage:unCheckImage forState:UIControlStateNormal];
    if (button2.image == checkimage) {
    [button2 setImage:unCheckImage forState:UIControlStateNormal];
    }
    else {
                    [button2 setImage:checkimage forState:UIControlStateNormal];
    }
                    [button3 setImage:unCheckImage forState:UIControlStateNormal];
                }
        else {
         [button1 setImage:unCheckImage forState:UIControlStateNormal];
                    [button2 setImage:unCheckImage forState:UIControlStateNormal];
    if (button3.image == checkimage) {
    [button3 setImage:unCheckImage forState:UIControlStateNormal];
    }
    else {
                    [button3 setImage:checkimage forState:UIControlStateNormal];
    }
            }
            
            
            
            
    

    尝试理解并在代码中实现,然后执行它

    请在代码中尝试下面的更正

    @interface ViewController ()
    {
        UIButton * button1;
        UIButton * button2;
        UIButton * button3;
    }
    
        
    @end
    
        
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
        UIImage *btnImage2 = [UIImage imageNamed:@"check.png"];
    
        button1 = [UIButton buttonWithType:UIButtonTypeCustom];
        [button1 addTarget:self action:@selector(aMethod1:)
         forControlEvents:UIControlEventTouchUpInside];
        button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
        UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
        [button1 setImage:btnImage1 forState:UIControlStateNormal];
        [button1 setImage:btnImage2 forState:UIControlStateSelected];
        button1.selected = NO;
        [self.view addSubview:button1];
    
        button2 = [UIButton buttonWithType:UIButtonTypeCustom];
        [button2 addTarget:self action:@selector(aMethod2:)
          forControlEvents:UIControlEventTouchUpInside];
        button2.frame = CGRectMake(50.0, 100.0, 30.0, 30.0);
        [button2 setImage:btnImage1 forState:UIControlStateNormal];
        [button2 setImage:btnImage2 forState:UIControlStateSelected];
        button2.selected = NO; 
        [self.view addSubview:button2];
    
        button3 = [UIButton buttonWithType:UIButtonTypeCustom];
        [button3 addTarget:self action:@selector(aMethod3:)
          forControlEvents:UIControlEventTouchUpInside];
        button3.frame = CGRectMake(100.0, 100.0, 30.0, 30.0);
        [button3 setImage:btnImage1 forState:UIControlStateNormal];
        [button3 setImage:btnImage2 forState:UIControlStateSelected];
        button3.selected = NO;
        [self.view addSubview:button3];
    
    }
    
    -(void)aMethod1 :(id)sender {
    
         button1.selected = !button1.selected;
    }
    
    -(void)aMethod2 :(id)sender {
    
         button2.selected = !button2.selected;
    }   
    
    -(void)aMethod3 :(id)sender {
    
         button3.selected = !button3.selected;
    }
    

    谢谢:)

    请尝试下面的代码更正

    @interface ViewController ()
    {
        UIButton * button1;
        UIButton * button2;
        UIButton * button3;
    }
    
        
    @end
    
        
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        UIImage *btnImage1 = [UIImage imageNamed:@"uncheck.png"];
        UIImage *btnImage2 = [UIImage imageNamed:@"check.png"];
    
        button1 = [UIButton buttonWithType:UIButtonTypeCustom];
        [button1 addTarget:self action:@selector(aMethod1:)
         forControlEvents:UIControlEventTouchUpInside];
        button1.frame = CGRectMake(10.0, 100.0, 30.0, 30.0);
        UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];
        [button1 setImage:btnImage1 forState:UIControlStateNormal];
        [button1 setImage:btnImage2 forState:UIControlStateSelected];
        button1.selected = NO;
        [self.view addSubview:button1];
    
        button2 = [UIButton buttonWithType:UIButtonTypeCustom];
        [button2 addTarget:self action:@selector(aMethod2:)
          forControlEvents:UIControlEventTouchUpInside];
        button2.frame = CGRectMake(50.0, 100.0, 30.0, 30.0);
        [button2 setImage:btnImage1 forState:UIControlStateNormal];
        [button2 setImage:btnImage2 forState:UIControlStateSelected];
        button2.selected = NO; 
        [self.view addSubview:button2];
    
        button3 = [UIButton buttonWithType:UIButtonTypeCustom];
        [button3 addTarget:self action:@selector(aMethod3:)
          forControlEvents:UIControlEventTouchUpInside];
        button3.frame = CGRectMake(100.0, 100.0, 30.0, 30.0);
        [button3 setImage:btnImage1 forState:UIControlStateNormal];
        [button3 setImage:btnImage2 forState:UIControlStateSelected];
        button3.selected = NO;
        [self.view addSubview:button3];
    
    }
    
    -(void)aMethod1 :(id)sender {
    
         button1.selected = !button1.selected;
    }
    
    -(void)aMethod2 :(id)sender {
    
         button2.selected = !button2.selected;
    }   
    
    -(void)aMethod3 :(id)sender {
    
         button3.selected = !button3.selected;
    }
    

    谢谢:)

    首先将图像重命名为check_0.png(未选中图像)和check_1.png(选中图像)

    步骤1:在接口中声明一个全局 步骤2:在viewDidLoad中初始化此数组并添加数据 步骤4:假设第一个按钮已选中
    如果您还需要什么,请告诉我。

    首先将图像重命名为check_0.png(未选中图像)和check_1.png(选中图像)

    步骤1:在接口中声明一个全局 步骤2:在viewDidLoad中初始化此数组并添加数据 步骤4:假设第一个按钮已选中

    如果您还需要什么,请告诉我。

    了解如何在UIButtons应用程序中使用标记。。。1小时后我会发布简短的回答。。对不起,现在是我休息的时间…好的,我会等你的代码,我会在10分钟后发布答案…发布答案。。。检查并让我知道,如果你还需要什么…学习如何使用标签在应用程序中的UIButtons。。。1小时后我会发布简短的回答。。对不起,现在是我休息的时间…好的,我会等你的代码,我会在10分钟后发布答案…发布答案。。。检查并让我知道如果你还需要什么…嗨,拉吉,当我取消按钮时,它必须uncheck@Ramakrishna:谢谢你接受我的回答。。。嗨raji当我取消选中按钮时它必须uncheck@Ramakrishna:谢谢你接受我的回答@NSPratik,我已经阅读并给出了正确的解决方案。我们只能给出最接近的解决方案,我们无法编写完整的代码,他必须这样做。我应该给他暗示或者帮助他。如果你有答案,请把它贴出来。编辑答案很容易,但编写完美的解决方案却不那么容易。事实上,问问题的人想要管理多个按钮及其所选状态,这就是我告诉你的原因。是的,Pratik,我也是Ahmedabad人,你为哪家公司工作过?@Pratik,我同意你的看法。下次我来处理这件事。让我们一起去吧。@NSPratik,我已经阅读并给出了正确的解决方案。我们只能给出最接近的解决方案,我们无法编写完整的代码,他必须这样做。我应该给他暗示或者帮助他。如果你有答案,请把它贴出来。编辑答案很容易,但编写完美的解决方案却不那么容易。事实上,问问题的人想要管理多个按钮及其所选状态,这就是我告诉你的原因。是的,Pratik,我也是Ahmedabad人,你为哪家公司工作过?@Pratik,我同意你的看法。下次我来处理这件事,让我们来。
    [self initArrayData];
    
    -(void) initArrayData {
        selctionArray = [[NSMutableArray alloc] init];
        for (int i=0;i<3;i++) {
            [selctionArray addObject:@"0"];
        }
    }
    
    button1.tag = 123451;
    button2.tag = 123452;
    button3.tag = 123453;
    
    // by-default first button will be checked
    [selctionArray replaceObjectAtIndex:0 withObject:@"1"];
    [self updateMyButtons];
    
    -(void) updateMyButtons {
        UIButton *mButton;
        for (int i=0;i<3;i++) {
            mButton = (UIButton *)[self.view viewWithTag:123451+i];
            [mButton setBackgroundImage:[UIImage imageNamed:[NSString stringWithFormat:@"check_%@.png", [selctionArray objectAtIndex:i]] forState:UIControlStateNormal];
        }
    }
    
    -(IBAction)clikcedButton:(id)sender {
        [self initArrayData];
        UIButton *mButton = (UIButton *) sender;
        int clickedButtonTag = mButton.tag;
        clickedButtonTag = clickedButtonTag - 123451;
        [selctionArray replaceObjectAtIndex:clickedButtonTag withObject:@"1"];
        [self updateMyButtons];
    }