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
,因此您不必担心……换句话说,在选中的复选框上显示一个复选框,然后从数组中的其他复选框中删除复选框(如果有任何)。
非常感谢您的阅读! 😁