代码之家  ›  专栏  ›  技术社区  ›  Abdulmoiz Ahmer

如何实现bemcheckbox ios库的didtapcheckbox?

  •  0
  • Abdulmoiz Ahmer  · 技术社区  · 6 年前

    我是iOS的新手,我很难理解协议和代表的概念。我正在实现一个名为bemcheckbox的库 https://github.com/Boris-Em/BEMCheckBox https://cocoapods.org/pods/BEMCheckBox 用于实现单选按钮。它的文档非常具有描述性,使用它我已经成功地添加了复选框,将它们组合在一起以用作单选框。

    @IBOutlet var inarelashipcb: BEMCheckBox!
    @IBOutlet var complicatedcb: BEMCheckBox!
    @IBOutlet var singlecb: BEMCheckBox!
    var groupbx:BEMCheckBoxGroup!
    
    func initialize(){
      groupbx = BEMCheckBoxGroup(checkBoxes: [inarelashipcb, 
     complicatedcb, singlecb])
        groupbx.selectedCheckBox = singlecb
        groupbx.mustHaveSelection = true
     }
    

    现在我想使用didtapcheckbox方法,但我不知道如何使用。文档很模糊,没有相关的片段。对于记录而言,这是文档所述内容

    “bemcheckbox使用委托接收复选框事件。委托对象必须符合bemcheckboxdelegate协议,该协议由两个可选方法组成:

    DeDATP复选框: 每次点击复选框时,在更新其属性(打开)后,但在动画完成之前发送给代理。“

    有没有什么片段可以帮助我使用Delgate来实现DidTapCheckBox方法?

    3 回复  |  直到 6 年前
        1
  •  1
  •   thipoo24    6 年前

    您已声明的出口复选框,将委托设置为self。 例如,如果您的复选框出口是复选框1,则将其代理设置为 checkbox1.delegate=本人

        2
  •  1
  •   Ankur Lahiry    6 年前
    func initialize(){
      groupbx = BEMCheckBoxGroup(checkBoxes: [inarelashipcb, 
     complicatedcb, singlecb])
        groupbx.selectedCheckBox = singlecb
        groupbx.mustHaveSelection = true
        for checkbox in groupbx {
          checkbox.delegate = self
        }
    
     }
    

    必须调用 initialize 在里面 viewDidLoad 视图控制器的

    override func viewDidLoad() {
    
        // Do your work
         initialize()
    }
    

    编译器将向您显示一个错误,如果您添加此代码,错误将消失。

    extension ViewController : BEMCheckBoxDelegate {
         func didTap(_ checkBox: BEMCheckBox) {
            //do your work 
            // if you have multiple checkboxes, then do like that 
            //if checkBox == checkBox1 {
               //do work for checkbox1 
            //} else if {
            // ..
            //}
        }
    }
    

    不要忘记添加以下行

    import BEMCheckBox

        3
  •  0
  •   Abdulmoiz Ahmer    6 年前
    I solve it.
    
    using this code 
    
    func initialize(){
      groupbx = BEMCheckBoxGroup(checkBoxes: [inarelashipcb, 
     complicatedcb, singlecb])
        groupbx.selectedCheckBox = singlecb
        groupbx.mustHaveSelection = true
      inarelashipcb.delegate =  self
            complicatedcb.delegate = self
            singlecb.delegate = self
     }
    
    
           func didTap(_ checkBox: BEMCheckBox) {
        print("here hello")
    }
    

    我的uiviewController也是从bemcheckboxDelegate继承的