Swift:如何切换两个UI开关

时间:2016-10-21 20:01:34

标签: ios swift xcode uiswitch

  • 我有两个UI开关

    • 当我点击一个时,我希望另一个关闭,反之亦然
    • 下面我有两个切换操作。
    • 我已经尝试检查开关1是否打开(默认情况下),如果是轻触,则将其关闭,但如果没有打开,请将其关闭上。

      @IBAction func switchOnePressed(_ sender: UISwitch) {
       if switchOne.isOn {
         label.text = "UISwitch is ON"
         switchOne.setOn(false, animated: true)
       } else {
         label.text = "UISwitch is OFF"
         switchOne.setOn(true, animated: true)
       }
      }
      
      @IBAction func switchTwoPressed(_ sender: UISwitch) {}
      

任何帮助都会很棒!

1 个答案:

答案 0 :(得分:6)

通过减少所需的代码,这简化了很多事情。然后根据呼叫开关的当前值设置相反的开关。

@IBAction func switchOnePressed(_ sender: UISwitch) {
    label.text = sender.isOn ? "UISwitch is ON" : "UISwitch is OFF"
    switchTwo.setOn(!sender.isOn, animated: true)
}

@IBAction func switchTwoPressed(_ sender: UISwitch) {
    label.text = sender.isOn ? "UISwitch is ON" : "UISwitch is OFF"
    switchOne.setOn(!sender.isOn, animated: true)
}

您不需要设置调用开关的值,因为它应该已经由接口交互处理。

此外,我不知道你对标签的意图是什么,但它的当前形式会产生误导,因为它没有表明开关是什么?关闭。也许每个人都有独特的标签,但这只是我的推测。