先说一下原理,就是利用中间变量来记录某个选中状态的按钮,加一个判断,如果用户下一次点击的不是这个按钮那么用中间变量把这个按钮的选中状态取消掉,再把新的按钮赋值给中间变量,这能保证选中状态的惟一性;
代码:
第一步:3个按钮
@property (weak, nonatomic) IBOutlet UIButton *GoodBt;
@property (weak, nonatomic) IBOutlet UIButton sendBt;
//记录状态的按钮
@property (strong,nonatomic)UIButton * tmpBtn;
第二步:两个要选中的按钮响应同样的方法
[self.sendBt addTarget:self action:@selector(buttonSelected:) forControlEvents:UIControlEventTouchUpInside];
[self.GoodBt addTarget:self action:@selector(buttonSelected:) forControlEvents:UIControlEventTouchUpInside];
第三步:进行记录判断
-(void)buttonSelected:(UIButton)sender{
if (_tmpBtn == nil){
sender.selected = YES;
_tmpBtn = sender;
}
else if (_tmpBtn !=nil && _tmpBtn == sender){
sender.selected = YES;
}
else if (_tmpBtn!= sender && _tmpBtn!=nil){
_tmpBtn.selected = NO;
sender.selected = YES;
_tmpBtn = sender;
}
}
完成了按钮2选一效果;
如果是多个按钮的选一个,参考文章:
http://www.bubuko.com/infodetail-1139059.html
谢谢大家。