一组按钮,其中一个选中,其余取消选中效果
2017-11-28 21:27
260 查看
第一,定义一个全局的按钮变量
@property (nonatomic, strong) UIButton *selectedBtn;
第二,循环创建按钮
//好评中评差评按钮
_normalArr = [NSArray arrayWithObjects:@"goodBtn_normal",@"middleBtn_normal",@"badBtn_normal", nil];
_selectArr = [NSArray arrayWithObjects:@"goodBtn_select",@"middleBtn_select",@"badBtn_select", nil];
for (int i = 0; i<3; i++) {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.tag = i;
button.frame = CGRectMake(60 + (SCREEN_WIDTH - 80)/ 3 * i, 10, (SCREEN_WIDTH - 80)/ 3, 40);
[button addTarget:self action:@selector(doButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:[UIImage imageNamed:_normalArr[i]] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:_selectArr[i]] forState:UIControlStateSelected];
//将循环创建的button都添加到view上面
[_opinionRatingView addSubview:button];
}
第三,监听按钮的点击,切换选中按钮
#pragma mark - button触发的方法
#pragma mark - button触发的方法
-(void)doButtonAction:(UIButton *)sender {
if (sender != _selectedBtn) {
_selectedBtn.selected = NO;
sender.selected = YES;
_selectedBtn = sender;
}else{
_selectedBtn.selected = YES;
}
}
@property (nonatomic, strong) UIButton *selectedBtn;
第二,循环创建按钮
//好评中评差评按钮
_normalArr = [NSArray arrayWithObjects:@"goodBtn_normal",@"middleBtn_normal",@"badBtn_normal", nil];
_selectArr = [NSArray arrayWithObjects:@"goodBtn_select",@"middleBtn_select",@"badBtn_select", nil];
for (int i = 0; i<3; i++) {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.tag = i;
button.frame = CGRectMake(60 + (SCREEN_WIDTH - 80)/ 3 * i, 10, (SCREEN_WIDTH - 80)/ 3, 40);
[button addTarget:self action:@selector(doButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:[UIImage imageNamed:_normalArr[i]] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:_selectArr[i]] forState:UIControlStateSelected];
//将循环创建的button都添加到view上面
[_opinionRatingView addSubview:button];
}
第三,监听按钮的点击,切换选中按钮
#pragma mark - button触发的方法
#pragma mark - button触发的方法
-(void)doButtonAction:(UIButton *)sender {
if (sender != _selectedBtn) {
_selectedBtn.selected = NO;
sender.selected = YES;
_selectedBtn = sender;
}else{
_selectedBtn.selected = YES;
}
}
相关文章推荐
- js全选,全选以后,如果选中其中一个,全选效果取消,如果复选框全部选中,全选按钮自动也被选中
- html中点击radio后的文字相当于选中该单选按钮如何实现?怎么实现两个redio,选中一个,取消另一个?
- html,javaScript中怎么控制复选框checkbox的全选,全不选,以及全选中,全选按钮选中,其中一个或者多个没选,则全选按钮不被选中
- iOS 实现多个按钮,点选一个其它都取消选中状态的最佳方法
- IOS中对于多个按钮,选中其中一个,其他按钮选中状态为NO
- iOS 实现多个按钮,点选一个其它都取消选中状态的最佳方法
- 创建多个UIButton其中只有一个显示选中效果
- 按钮组中只选中一个的效果
- 当一组单选按钮中的一个选中,后文本框为只读属性
- iOS 实现多个按钮,点选一个其它都取消选中状态的最佳方法
- iOS中对于多个按钮,选中其中一个,其他按钮选中状态为NO
- ListView 里面的checkBox,当其中一个被选中,其余全不被选中
- 针对一组多选按钮的“全部选中”、“取消选中”、“反选”的JS工具代码
- 按钮组,导航条选中其中一个后添加Class突出元素
- 给一组单选按钮中的一个指定按钮加上选中标志,并且清除组中其他按钮的选中标志
- jsp name属性相同的一组输入框input,输入其中一个值,其余值跟随改变事件监听代码
- iOS 多个按钮,选中其中一个其他按钮不可选
- 关于全选按钮和复选框只能选中其中一个的js写法
- 按钮点击一个,其它都取消选中状态的iOS开发,
- 实现多个按钮,点选一个其它都取消选中状态的方法