最好的方式来使用checkbox – IOS的​​Swift

我将要开发一个将使用大量checkbox的项目。 我发现像下面这样的解决scheme,但我知道这是不正确的方式。

@IBAction func btn_box(sender: UIButton) { if (btn_box.selected == true) { btn_box.setBackgroundImage(UIImage(named: "box"), forState: UIControlState.Normal) btn_box.selected = false; } else { btn_box.setBackgroundImage(UIImage(named: "checkBox"), forState: UIControlState.Normal) btn_box.selected = true; } } 

那么,任何人都可以向我展示在我的项目中有超过20个checkbox的正确方法吗?

我将使用checkbox的forms和设置的目的。

谢谢。

有很多checkbox控件,或者通过这种简单的方法来完成:

对于故事板:

  1. 设置你的button的select图像:

    在这里输入图像说明

  2. 设置你的button的默认图像:

    在这里输入图像说明

以编程方式:

 btn_box.setBackgroundImage(UIImage(named: "box"), for: .normal) btn_box.setBackgroundImage(UIImage(named: "checkBox"), for: .selected) 

在button操作中:

 @IBAction func btn_box(sender: UIButton) { sender.isSelected = !sender.isSelected } 

而不是检查每个button,只是使用通用的方式来处理这个。 将所有button设置为相同的IBAction方法,并执行如下操作:

 @IBAction func btn_box(sender: UIButton) { // Instead of specifying each button we are just using the sender (button that invoked) the method if (sender.selected == true) { sender.setBackgroundImage(UIImage(named: "box"), forState: UIControlState.Normal) sender.selected = false; } else { sender.setBackgroundImage(UIImage(named: "checkBox"), forState: UIControlState.Normal) sender.selected = true; } } 

您可以使用下面最有用的方法:在StoryBoardViewDidLoadUIButton分配图像:

 checkBoxButton.setBackgroundImage(UIImage(named: "box"), forState: UIControlState.Normal) checkBoxButton.setBackgroundImage(UIImage(named: "checkBox"), forState: UIControlState.Selected) 

在你的@IBAction方法之后,只需实现以下代码:

 @IBAction func btn_box(sender: UIButton) { sender.selected = !sender.selected } 

这将做的伎俩。

请试试这个。

 btn.setImage(UIImage(named: "uncheckImage"), for: UIControlState.normal) btn.setImage(UIImage(named: "checkImage"), for: UIControlState.selected) @IBAction func btn_box(sender: UIButton) { if btn.isSelected == true { btn.isSelected = false } else { btn.isSelected = true } }