开发过程中会遇到选中某个button后,其余的button就处于非选中状态,也就是button单选功能,下面来讲一下如何来简单实现此功能:
- 创建一个数组,用来存放相关联button
//存放选择按钮
var buttonArray:Array<UIButton> = []
- 将button分别放入数组
//设置tag
cardButton.tag = 101
//buton初始都是非选中状态
cardButton.isSelected = false
cardButton .addTarget(self, action: #selector(buttonClick), for: UIControl.Event.touchUpInside)
//将button添加到数组(如下雷同)
buttonArray.append(cardButton)
zhiButton.tag = 102
zhiButton.isSelected = false
zhiButton .addTarget(self, action: #selector(buttonClick), for: UIControl.Event.touchUpInside)
buttonArray.append(zhiButton)
weiButton.tag = 103
weiButton.isSelected = false
weiButton .addTarget(self, action: #selector(buttonClick), for: UIControl.Event.touchUpInside)
buttonArray.append(weiButton)
- 实现该点击事件
//选择按钮点击事件
@objc func buttonClick(sender:UIButton)
{
for btn in buttonArray {
//此处确保只有被选中的button状态改变
if sender .isEqual(btn) {
sender .setImage(UIImage(named: "order_selected"), for: UIControl.State.normal)
if sender.tag == 101 {
selectstr = "card"
}else if sender.tag == 102{
selectstr = "wei"
}else if sender.tag == 103{
selectstr = "zhi"
}else{
selectstr = "111"
}
}else{
btn .setImage(UIImage(named: "order_NO"), for: UIControl.State.normal)
}
}
}
整体实现后效果如下:
这样就可以确保每次选择后只有一个button被选中了