UISwitch在swift中无法正常工作

时间:2015-10-05 06:04:18

标签: ios swift ibaction uiswitch

我在新的快速项目中采用了UISwitch控件。并且默认状态为storyboard中的Off。我把它当作IBOutlet

@IBOutlet weak var SwitchRemFacility: UISwitch!

我还通过故事板中的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。我已经通过断点检查了,我也将它打印到控制台。任何肝脏将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:3)

当值已经更改时,您正在测试它。 Switch会自行开启和关闭工作。

如果你想手动完成,你可以这样做:

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

实际上不需要代码。但是如果你想要打开或关闭状态,那么你必须做代码。

例如

@IBAction func switchChangeVal(sender: AnyObject) {
    let swh : UISwitch = sender as! UISwitch
    if(swh.on){
        //Do the code for when switch is on
    }
    else{
        //Do the code for when switch is off
    }
}