Swift Radio Buttons - CheckBoxes - Swift 3

时间:2017-01-20 21:13:06

标签: ios swift xcode button checkbox

我在Swift 3上工作,我正在尝试制作像单选按钮一样的复选框。我自己解释一下:我有8个按钮;每个都有一个“未选中”的图像和一个“已检查”的图像。我只想要选择1个按钮(因此,显示ITS“已检查”图像)。单选按钮的原理。 所以我尝试在每个按钮上使用@IBAction,我就是这样:

@IBAction func tona1_changed(_ sender: Any) {
 if test_tona1.isSelected == true
        {
            test_tona1.setBackgroundImage(UIImage(named: "0b_unchecked"), for: UIControlState.normal)

            test_tona1.isSelected = false
        }
        else
        {
            test_tona1.setBackgroundImage(UIImage(named: "0b_checked"), for: UIControlState.normal)

            test_tona1.isSelected = true
        }}

它实际上使图像在“取消选中”和“检查”之间切换,但我根本不知道如何使其与其他按钮交互。 我尝试使用带有按钮标签的数组但我没有工作的东西。我也尝试上课,但我不知道它是如何起作用的。 谢谢!

1 个答案:

答案 0 :(得分:1)

您可以通过多种方式实现这一目标。其中最琐碎的是:

  • 拥有数据源。大部分时间都是数组。
  • 为数据源中的每个项创建一个UIButton,并将每个按钮插入另一个数组。每个按钮都有一个对应的标签 数组的索引。同时为选定的状态和正常设置不同的图像。
  • 为每个按钮添加一个动作,目标函数类似于:

    func buttonPressed(sender:UIButton) {
        for button in buttons {
            button.isSelected = false
            // deselect your model datasource[button.tag]
        }
    
        sender.isSelected = true
        // select your model datasource[button.tag]
    }
    

我将抽象/改进/安全留给您。关键点是使用一组按钮,迭代它们,并相应地选择/取消选择它们,并且每次都使用大的if / else检查按钮标记。