/** 复选框 */ import UIKit class LYBmutipleSelectView: UIView { var selectindexs:[Int]=[]//选中的 //标题数组 var titleArr:[String]=[""]{ didSet{ for i in 0..<titleArr.count{ //组装按钮和label let singleselectview:UIView=UIView.init(frame: CGRect.init(x: i*100, y: 100, width: 100, height: 50)) let rightLbel:UILabel=UILabel.init(frame: CGRect.init(x: 50, y: 0, width: 50, height: 50)) rightLbel.text=titleArr[i] singleselectview.addSubview(rightLbel) let leftBtn:UIButton=UIButton.init(frame: CGRect.init(x: 10, y: 10, width: 30, height: 30)) leftBtn.tag=130+i; leftBtn.setimage(UIImage.init(named: "fuxuankuangUnselect"), for: UIControl.State.normal) leftBtn.addTarget(self, action: #selector(leftBtnClcik), for: UIControl.Event.touchUpInside) singleselectview.addSubview(leftBtn) addSubview(singleselectview) } } } override init(frame: CGRect) { super.init(frame: frame) initViews() } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } func initViews(){ let sureBtn:UIButton=UIButton.init(frame: CGRect.init(x: 200, y: 10, width: 100, height: 50)) sureBtn.setTitle("确认", for: UIControl.State.normal) sureBtn.setTitleColor(UIColor.black, for: UIControl.State.normal) sureBtn.addTarget(self, action: #selector(sureBtnClcik), for: UIControl.Event.touchUpInside) addSubview(sureBtn) } //确认按钮,根据选中的按钮索引做相应的操作 @objc func sureBtnClcik(){ print("\(selectindexs)") } //点击按钮选中或取消 @objc func leftBtnClcik(sender:UIButton){ sender.isSelected = !sender.isSelected let btnTag:Int=sender.tag-130 if sender.isSelected{//选中 selectindexs.append(btnTag)//吧按钮的索引存储起来 }else { //删除数组中的元素,采用过滤的方法,swift中没有现成f的方法 let fiflter:[Int]=selectindexs.filter { $0 != btnTag } selectindexs = fiflter } sender.setimage(UIImage.init(named: "fuxuankuangUnselect"), for: UIControl.State.selected) sender.setimage(UIImage.init(named: "fuxuankuangselect"), for: UIControl.State.selected) } }
/** 单选框 */ import UIKit class LYBSingleselectview: UIView { var selectindex:Int=0//选中的 var lastbtn:UIButton=UIButton.init()//保存上一个按钮 //标题数组 var titleArr:[String]=[""]{ didSet{ for i in 0..<titleArr.count{ //组装按钮和label let singleselectview:UIView=UIView.init(frame: CGRect.init(x: i*100, y: 100, width: 100, height: 50)) let rightLbel:UILabel=UILabel.init(frame: CGRect.init(x: 50, y: 0, width: 50, height: 50)) rightLbel.text=titleArr[i] singleselectview.addSubview(rightLbel) let leftBtn:UIButton=UIButton.init(frame: CGRect.init(x: 10, y: 10, width: 30, height: 30)) leftBtn.tag=130+i leftBtn.setimage(UIImage.init(named: "fuxuankuangUnselect"), for: UIControl.State.normal) leftBtn.addTarget(self, action: #selector(leftBtnClcik), for: UIControl.Event.touchUpInside) singleselectview.addSubview(leftBtn) addSubview(singleselectview) } } } override init(frame: CGRect) { super.init(frame: frame) initViews() } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } func initViews(){ let sureBtn:UIButton=UIButton.init(frame: CGRect.init(x: 200, y: 10, width: 100, height: 50)) sureBtn.setTitle("确认", for: UIControl.State.normal) sureBtn.setTitleColor(UIColor.black, for: UIControl.State.normal) sureBtn.addTarget(self, action: #selector(sureBtnClcik), for: UIControl.Event.touchUpInside) addSubview(sureBtn) } //确认按钮,根据选中的按钮索引做相应的操作 @objc func sureBtnClcik(){ print("\(selectindex)") } //点击按钮选中或取消 @objc func leftBtnClcik(sender:UIButton){ let btnTag:Int=sender.tag-130 sender.isSelected=true lastbtn.isSelected=false lastbtn.setimage(UIImage.init(named: "fuxuankuangUnselect"), for: UIControl.State.selected) sender.setimage(UIImage.init(named: "fuxuankuangselect"), for: UIControl.State.selected) lastbtn=sender selectindex = btnTag } }
原文链接:https://blog.csdn.net/u011146511/java/article/details/86578730
原文地址:https://www.cnblogs.com/modentime/p/12830743.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。