当 UISwitch 改变状态时如何调用动作?

发布于 2024-12-22 10:39:07 字数 94 浏览 2 评论 0原文

我想在 UISwitch 更改其状态(因此设置为打开或关闭)时执行一些操作。我该怎么做?我需要传递两个对象作为参数。

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

I want to perform some action when UISwitch changes its state, thus is set on or off. How do I do this? I need to pass two objects as parameters.

It's created in code, thus not using xib.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

鱼窥荷 2024-12-29 10:39:07
[yourSwitchObject addTarget:self action:@selector(setState:) forControlEvents:UIControlEventValueChanged]; 

当您的开关状态发生变化时,这将调用以下方法

- (void)setState:(id)sender 
{
    BOOL state = [sender isOn];
    NSString *rez = state == YES ? @"YES" : @"NO";
    NSLog(rez);
}
[yourSwitchObject addTarget:self action:@selector(setState:) forControlEvents:UIControlEventValueChanged]; 

This will call the below method when your switch state changes

- (void)setState:(id)sender 
{
    BOOL state = [sender isOn];
    NSString *rez = state == YES ? @"YES" : @"NO";
    NSLog(rez);
}
旧人哭 2024-12-29 10:39:07

显然我们可以用 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
}

Obviously we can do the same with Swift, here is the code (compiled and worked with the latest version of the Swift 3.1)

Add action to your switch button:

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

And implement this method:

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

Or even if you are not using the sender you may remove:

func switchValueDidChange() {
    // do your stuff
}
╰沐子 2024-12-29 10:39:07

对我来说简单的解决方案(使用 swift 4):

@IBAction func toggleSwitch(_ sender: UISwitch) {
    if(mySwitch.isOn) {
        //Do something
    } else {
        //Do something
    }
}

将上述函数与连接选项卡下的发送事件中更改的值链接起来

Easy solution for me (worked with swift 4):

@IBAction func toggleSwitch(_ sender: UISwitch) {
    if(mySwitch.isOn) {
        //Do something
    } else {
        //Do something
    }
}

Link the above function with value changed in Sent Events under connection tab

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文