斯威夫特:如何切换两个UI切换
问题描述:
-
我有两个UI切换斯威夫特:如何切换两个UI切换
- 当我点击一个,我想其他的关闭,反之亦然
- 下面我有两个开关的动作。
-
我试着检查开关是否开启(默认情况下),如果是开启时,则关闭它,但如果未开启,则将其打开。
@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)
}
您不需要设置调用开关的值,因为它应该已经由界面交互处理。
此外,我不知道你的意图是与标签是什么,但它会误导它的当前形式,因为它不表示&关闭。也许你对每一个都有独特的标签,但这只是我的猜测而已。
+0
这实际上完美。感谢CodeBender!非常感激。祝你有个美好的夜晚:) – MegaTron
您需要在'switchOnePress'方法内为'switchTwo'调用'setOn'。 – rmaddy
嘿马迪。我尝试了一些变化,最后我得到了一些奇怪的结果,例如第二个开关打开并关闭一个开关,但如果我再次这样做,他们都会关闭等。我想我错过了一些明显的东西。 – MegaTron
用您最新的实际代码更新您的问题。更新你的问题,明确解释你想要在每种情况下发生的事情,并清楚地解释实际发生的事情。 – rmaddy