Iphone 当UISwitch更改状态时如何调用操作?
我想在UISwitch更改其状态时执行一些操作,从而设置为on或off。我该怎么做?我需要传递两个对象作为参数 它是在代码中创建的,因此不使用xibIphone 当UISwitch更改状态时如何调用操作?,iphone,ios5,uiswitch,Iphone,Ios5,Uiswitch,我想在UISwitch更改其状态时执行一些操作,从而设置为on或off。我该怎么做?我需要传递两个对象作为参数 它是在代码中创建的,因此不使用xib [yourSwitchObject addTarget:self action:@selector(setState:) forControlEvents:UIControlEventValueChanged]; 当开关状态更改时,这将调用下面的方法 - (void)setState:(id)sender { BOOL state =
[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编译和使用) 向开关按钮添加操作:
mySwitch.addTarget(self, action: #selector(self.switchValueDidChange), for: .valueChanged)
并实施此方法:
@objc func switchValueDidChange(sender:UISwitch!) {
print(sender.isOn)
}
或者,即使您没有使用发件人,也可以删除:
func switchValueDidChange() {
// do your stuff
}
简单的解决方案(与swift 4合作):
将上述功能与“连接”选项卡下“已发送事件”中更改的值链接起来参考此链接如何设置代理?我没有看到
委托
属性或-setDelegate
函数。无需设置委托,这是您自己的方法dude;)
@IBAction func toggleSwitch(_ sender: UISwitch) {
if(mySwitch.isOn) {
//Do something
} else {
//Do something
}
}