1
votes

Comment implémenter didTapCheckBox de la bibliothèque IOS BEMCheckBox?

Je suis nouveau dans Ios et j'ai du mal à comprendre les protocoles et le concept des délégués. J'implémente une bibliothèque appelée BEMCheckBox https://github.com/Boris-Em/BEMCheckBox ou https://cocoapods.org/pods/BEMCheckBox pour l'implémentation de boutons radio. Sa documentation est assez descriptive à l'aide de laquelle j'ai ajouté avec succès des cases à cocher, les a regroupées pour fonctionner comme des boîtes radio.

@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
 }

Maintenant, je veux utiliser la méthode didTapCheckBox mais je ne comprends pas comment. La documentation est floue, il n'y a pas d'extraits pour cela. Pour mémoire, c'est ce que la documentation indique.

"BEMCheckBox utilise un délégué pour recevoir les événements de case à cocher. L'objet délégué doit être conforme au protocole BEMCheckBoxDelegate, qui est composé de deux méthodes facultatives:

didTapCheckBox: Envoyé au délégué à chaque fois que la case à cocher est activée, après la mise à jour de ses propriétés (activée), mais avant la fin des animations. "

Des extraits pour m'aider à utiliser delgate afin que je puisse implémenter la méthode didTapCheckBox?


0 commentaires

3 Réponses :


3
votes
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 {
        // ..
        //}
    }
}

3 commentaires

En implémentant votre code, j'obtiens une erreur de compilation: valeur de type 'BEMCheckBoxGroup?' n'a pas de membre 'délégué'


C'est sur cette instruction "groupbx.delegate = self"


OUI, BEMCheckBoxGroup n'a pas de délégué membre, le délégué est pour une seule case à cocher, vous devez ajouter une méthode de délégué itérant une boucle, j'ai mis à jour, faites le moi savoir.



1
votes

La case à cocher de sortie que vous avez déclarée, définissez délégué sur self. Par exemple, si votre prise de case à cocher est checkbox1, définissez son délégué comme checkbox1.delegate = soi


0 commentaires

0
votes
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")
}
Also my uiviewcontroller inherited from BEMCheckBoxDelegate

0 commentaires