Ios UISwitch在swift中工作不正常

Ios UISwitch在swift中工作不正常,ios,swift,ibaction,uiswitch,Ios,Swift,Ibaction,Uiswitch,我在我的新swift项目中取得了UISwitch控制权。并且它的默认状态设置为“从情节提要中关闭”。我把它当作一个出口 @IBOutlet weak var SwitchRemFacility: UISwitch! 我还将它绑定到故事板中的一个方法by Value change事件 @IBAction func rememberFacilityClick(sender: AnyObject) { print(SwitchRemFacility.on) if Sw

我在我的新swift项目中取得了UISwitch控制权。并且它的默认状态设置为“从情节提要中关闭”。我把它当作一个出口

@IBOutlet weak var SwitchRemFacility: UISwitch!
我还将它绑定到故事板中的一个方法by Value change事件

@IBAction func rememberFacilityClick(sender: AnyObject) {
        print(SwitchRemFacility.on)
        if SwitchRemFacility.on {
            SwitchRemFacility.setOn(false, animated: true)
        } else {
            SwitchRemFacility.setOn(true, animated: true)
        }
    }
问题是
SwitchRemFacility.on
在这里总是返回true。我已经通过断点进行了检查,并且已经将其打印到控制台。任何hep都将不胜感激


提前感谢。

当值已经更改时,您正在测试它。开关将自己完成开关工作

如果要手动执行,可以执行以下操作:

@IBAction func switchChangeVal(sender: AnyObject) {
    let swh : UISwitch = sender as! UISwitch
    if(swh.on){
        swh.setOn(true, animated: true)//But it will already do it. 
    }
    else{
        swh.setOn(false, animated: true)
    }
}
实际上不需要代码。但是,如果您想将条件设置为on或off状态,则必须执行代码

例如
当值已经更改时,您正在测试它。开关将自己完成开关工作

如果要手动执行,可以执行以下操作:

@IBAction func switchChangeVal(sender: AnyObject) {
    let swh : UISwitch = sender as! UISwitch
    if(swh.on){
        swh.setOn(true, animated: true)//But it will already do it. 
    }
    else{
        swh.setOn(false, animated: true)
    }
}
实际上不需要代码。但是,如果您想将条件设置为on或off状态,则必须执行代码

例如
当值已经更改时,您正在测试它。开关将自己完成开关工作

如果要手动执行,可以执行以下操作:

@IBAction func switchChangeVal(sender: AnyObject) {
    let swh : UISwitch = sender as! UISwitch
    if(swh.on){
        swh.setOn(true, animated: true)//But it will already do it. 
    }
    else{
        swh.setOn(false, animated: true)
    }
}
实际上不需要代码。但是,如果您想将条件设置为on或off状态,则必须执行代码

例如
当值已经更改时,您正在测试它。开关将自己完成开关工作

如果要手动执行,可以执行以下操作:

@IBAction func switchChangeVal(sender: AnyObject) {
    let swh : UISwitch = sender as! UISwitch
    if(swh.on){
        swh.setOn(true, animated: true)//But it will already do it. 
    }
    else{
        swh.setOn(false, animated: true)
    }
}
实际上不需要代码。但是,如果您想将条件设置为on或off状态,则必须执行代码

例如

你的意思是如果我只想打开和关闭状态,就不需要值更改事件?@Max是的。您无需手动更改该值。开关将自行完成。您可以打印true或false的值,并在true或false条件下工作。无需更改开关的状态。@Max已更新答案。希望对你有帮助。非常感谢。我忘了值更改事件是在值更改后触发的。如果我只想打开和关闭条件,您的意思是不需要值更改事件?@Max Yes。您无需手动更改该值。开关将自行完成。您可以打印true或false的值,并在true或false条件下工作。无需更改开关的状态。@Max已更新答案。希望对你有帮助。非常感谢。我忘了值更改事件是在值更改后触发的。如果我只想打开和关闭条件,您的意思是不需要值更改事件?@Max Yes。您无需手动更改该值。开关将自行完成。您可以打印true或false的值,并在true或false条件下工作。无需更改开关的状态。@Max已更新答案。希望对你有帮助。非常感谢。我忘了值更改事件是在值更改后触发的。如果我只想打开和关闭条件,您的意思是不需要值更改事件?@Max Yes。您无需手动更改该值。开关将自行完成。您可以打印true或false的值,并在true或false条件下工作。无需更改开关的状态。@Max已更新答案。希望对你有帮助。非常感谢。我忘记了值更改事件是在值更改后触发的。