iOS快速提示:切换多个BEMCheckBox项

嘿! 我想分享我在玩BEMCheckBox时学到的东西。 https://github.com/Boris-Em/BEMCheckBox

我们将以“ 风味”部分为例。

假设我只能选择一种口味。 我将必须将所选调味料的属性设置为true ,而其余​​复选框的属性设置为false

1.为复选框创建出口。

  @IBOutlet弱var vanillaFlavourCheckbox:BEMCheckBox! 
  @IBOutlet弱var ChocolateFlavourCheckbox:BEMCheckBox 
  @IBOutlet弱var StrawberryFlavourCheckbox:BEMCheckBox! 

2.将复选框存储在数组中。

  var flavourCheckBoxes:[BEMCheckBox]?  覆盖func viewDidLoad(){ 
    super.viewDidLoad() flavourCheckBoxes = [vanillaFlavourCheckbox,chocolateflavorCheckbox,strawberryFlavourCheckbox] } 

3.将标签添加到每个复选框。 0、1、2。 标签是我们将用来识别已选中哪个复选框的标签。

4.制作您的 ViewController 符合 BEMCheckBoxDelegate ,并添加 didTap 函数。

  ViewController类:UIViewController,BEMCheckBoxDelegate { 
     ... func didTap(_ checkBox:BEMCheckBox){ //在这里做事 } ... } 

我们将使用模式匹配和where关键字。 让我们先编写代码,我会解释!

5.填写 didTap

  func didTap(_ checkBox:BEMCheckBox){ // 1 
    让currentTag = checkBox.tag // 2 
    警卫让flavourCheckBoxes = flavourCheckBoxes else {return} // 3 
    用于flavourCheckBoxes中的框,其中box.tag!= currentTag { 
    
      // 4 
      box.on = false } } 

1:选中某个复选框后,获取该复选框的tag属性并将其存储在currentTag

2: guard以避免强行展开,因此我们可以安全地使用flavourCheckBoxes ,将其声明为[BEMCheckBox]?类型的数组[BEMCheckBox]?

3:对于flavourCheckBoxes中不等于currentTag的项的标签(即,对于所有未选中的复选框),

4:将其on属性设置为false 。 选中的复选框默认情况下已经将其on属性设置为true ,因此您不必担心……换句话说,在选中的复选框上显示一个复选框,然后从数组中的其他复选框中删除复选框(如果有任何)。

非常感谢您的阅读! 😁