ios - Swift:如何切换两个 UI 开关

标签 ios swift xcode uiswitch

  • 我有两个 UI 开关

    • 当我点击一个时,我希望另一个关闭,反之亦然
    • 下面我有两个开关 Action 。
    • 我尝试检查第一个开关是否打开(默认情况下),如果在点击时打开,则将其关闭,但如果未打开,则将其打开。

      @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) {}
      

任何帮助都会很棒!

最佳答案

这通过减少所需的代码大大简化了事情。然后根据调用开关的当前值设置相反的开关。

@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)
}

您不需要为调用开关设置值,因为界面交互应该已经处理了该值。

此外,我不知道您对标签的意图是什么,但它目前的形式会产生误导,因为它没有指示打开和关闭的开关。也许每个人都有独特的标签,但这只是我的猜测。

关于ios - Swift:如何切换两个 UI 开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40184609/

相关文章:

objective-c - 以编程方式访问 iOS 字典

ios - 在 Facebook iOS SDK 中存储 accessToken

swift - 遍历 NSOrderedSet

xcode - 如何修复 Xcode 4 无用的取消注释行为

iOs模拟器运行缓慢

ios - 地标 kml 信息未显示在 iOS 版 Google 地球中

ios - swift GMSPlacePicker 不显示 map

swift - iad 的 didFailToReceiveAdWithError 函数不工作

ios - Swift 2.0 中使用一个自定义动画类进行多个 Segues

iphone - 使用 Storyboard以编程方式设置 UITabBarItem 图标?