zoukankan      html  css  js  c++  java
  • iOS 实现多个按钮,点选一个其它都取消选中状态的最佳方法

    先说一下原理,就是利用中间变量来记录某个选中状态的按钮,加一个判断,如果用户下一次点击的不是这个按钮那么用中间变量把这个按钮的选中状态取消掉,再把新的按钮赋值给中间变量,这能保证选中状态的惟一性。这里是OC 应用在iOS 项目中的,下面来看具体实现。

    首先我们先定义一个中间变量

    @property (strong,nonatomic)UIButton * tmpBtn;

    然后在ViewDidLoad方法里,创建四个按钮,设置它们属性,以及点击方法,在此外设置中间变量tmpBtn = nil;

    —(void)viewDidLoad{
         NSArray * array = [NSArray arrayWithObjects:@"默认",@"销量",@"价格",@"时间", nil];
             for (int i = 0; i<4; i ++) {
                UIButton * button = [[UIButton alloc]initWithFrame:CGRectMake(80*i, 0, 80, 40)];
                [button setTitle:[array objectAtIndex:i] forState:UIControlStateNormal];
                [button setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
                [button setTitleColor:[UIColor blackColor] forState:UIControlStateSelected];
                [button.titleLabel setFont:[UIFont systemFontOfSize:14]];
                [button.layer setBorderWidth:0.3];
                button.userInteractionEnabled = YES;
                [button addTarget:self action:@selector(buttonSelected:) forControlEvents:UIControlEventTouchUpInside];
                [button setBackgroundColor:[UIColor whiteColor]];
                [button setTag:i];
                [self.view addSubview:button];
    
    
    }



    下面来看buttonselected:里面的实现过程

    -(void)buttonSelected:(UIButton*)sender{
        if (_tmpBtn == nil){
            sender.selected = YES;
            _tmpBtn = sender;
        }
        else if (_tmpBtn !=nil && _tmpBtn == sender){
            sender.selected = YES;
        
        }
        else if (_tmpBtn!= btn && _tmpBtn!=nil){
            _tmpBtn.selected = NO;
            sender.selected = YES;
            _tmpBtn = btn;
        }
    
    
    }
  • 相关阅读:
    多选菜单shell脚本
    获取nginx日志状态码百分比脚本
    Linux内核参数优化
    deploy.sh
    Docker常用命令速查
    Docker架构
    修改Docker默认存储路径
    redis安装与基本使用
    js实现汉字转拼音
    android:Android 6.0+ 权限控制代码封装
  • 原文地址:https://www.cnblogs.com/luqinbin/p/4874138.html
Copyright © 2011-2022 走看看