如何使两个UIButton像Swift中的单选按钮一样工作?

Aus*_*nyi 3 uibutton radio-button ios swift3

UIButton在将数据保存到数据库之前,我想使用两个s将A / B值设置为变量。我希望一个按钮在被点击时被选中,而在另一个按钮被点击时被取消选择,反之亦然。通过编程或在Interface Builder中完成此操作的最佳解决方案是什么?

Nic*_*ari 5

为了设置您所提到的“ A / B值”,最简单的选择是使用UISwitch或-(在通常情况下可能有两个以上选项)UISegmentedControl-a(如问题注释中的@rmaddy所示)。

这些控件内置了您要查找的“从众多中选择一种”功能。

交换机的缺点是:

  • 它必须为开或关(不支持选择状态“既不是A也不是B”)
  • 每个州不能有单独的标题标签。

如果仍然需要两个单独的UIButton实例,则可以:

  • 引用了视图控制器中的两个按钮(@IBOutlet使用Interface Builder连接),例如:

    @IBOutlet weak var leftButton: UIButton!
    @IBOutlet weak var rightButton: UIButton!
    
    Run Code Online (Sandbox Code Playgroud)
  • 对两个按钮实施操作方法,以使其设置轻击按钮的选定状态,并重置另一个按钮。例如:

    @IBAction func buttonAction(sender: UIButton) {
        if sender == leftButton {
            leftButton.isSelected = true
            rightButton.isSelected = false
        } else if sender == rightButton{
            leftButton.isSelected = false
            rightButton.isSelected = true
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

这是仅需两个按钮的快速解决方案。如果您想要一个由n个按钮组成的通用广播组,则GitHub等上有开源解决方案...