swift 实现button单选

开发过程中会遇到选中某个button后,其余的button就处于非选中状态,也就是button单选功能,下面来讲一下如何来简单实现此功能:

  1. 创建一个数组,用来存放相关联button
//存放选择按钮
var buttonArray:Array<UIButton> = []
  1. 将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)
  1. 实现该点击事件
//选择按钮点击事件
    @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)
            }
        }
    }

整体实现后效果如下:


image.png

这样就可以确保每次选择后只有一个button被选中了

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容