我希望在UISwitch改变状态时执行一些操作,即打开或关闭。我该如何做到这一点?我需要传递两个对象作为参数。
它是通过代码创建的,因此不使用xib。
它是通过代码创建的,因此不使用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);
}
delegate
属性或-setDelegate
函数。 - Joeran显然我们可以用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):
@IBAction func toggleSwitch(_ sender: UISwitch) {
if(mySwitch.isOn) {
//Do something
} else {
//Do something
}
}
将上述函数与连接选项卡下的“已发送事件”中的值更改相关联