博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 实现多个按钮,点选一个其它都取消选中状态的最佳方法
阅读量:6029 次
发布时间:2019-06-20

本文共 1449 字,大约阅读时间需要 4 分钟。

hot3.png

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

@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;    }}

代码直接粘贴可用。

转载于:https://my.oschina.net/gongxiao/blog/522139

你可能感兴趣的文章
Mysql设置自增长主键的初始值
查看>>
Android计时器正确应用方式解析
查看>>
获取post传输参数
查看>>
ASP生成静态页面的方法
查看>>
mysql 权限
查看>>
HDU 1325 Is It A Tree? 判断是否为一棵树
查看>>
Shell命令-文件压缩解压缩之gzip、zip
查看>>
个人总结
查看>>
uva 673 Parentheses Balance
查看>>
Bzoj 2252: [2010Beijing wc]矩阵距离 广搜
查看>>
css 禁止选中文本
查看>>
bzoj2165
查看>>
tomcat 配置首页
查看>>
算术运算表达式正则及分析
查看>>
Oracle 12c 多租户 手工创建 pdb 与 手工删除 pdb
查看>>
shell初涉
查看>>
[浪子学编程][MS Enterprise Library]ObjectBuilder之创建策略祥解(二)
查看>>
ASP.NET 中设置路径的三种方式
查看>>
EBS使用 Distributed AD在多个节点并行adpatch
查看>>
windows添加和删除服务
查看>>