如何在UISwitch改变状态时调用一个动作?

当UISwitch改变它的状态时,我想执行一些操作,因此被设置为打开或closures。 我该怎么做呢? 我需要传递两个对象作为参数。

它是在代码中创build的,因此不使用xib。

[yourSwitchObject addTarget:self action:@selector(setState:) forControlEvents:UIControlEventValueChanged]; 

当你的开关状态改变时,这将调用下面的方法

 - (void)setState:(id)sender { BOOL state = [sender isOn]; NSString *rez = state == YES ? @"YES" : @"NO"; NSLog(rez); } 

很明显,我们可以用Swift做同样的事情,这里是代码(编译并使用Swift 3.1的最新版本)

将动作添加到切换button:

 mySwitch.addTarget(self, action: #selector(self.switchValueDidChange), for: .valueChanged) 

并执行这个方法:

 func switchValueDidChange(sender:UISwitch!) { print(sender.isOn) } 

或者,即使您不使用发件人,也可以删除:

 func switchValueDidChange() { // do your stuff }