gpt4 book ai didi

Swift UISwitch 选择器内联

转载 作者:可可西里 更新时间:2023-11-01 00:36:04 26 4
gpt4 key购买 nike

我知道我应该像这样添加目标:

mySwitch.addTarget(self, action: Selector("selector"), for: UIControlEvents.valueChanged)

但是我不希望选择器有一个单独的函数,所以我想做这样的事情:

mySwitch.addTarget(self, action: Selector {
if mySwitch.on {
label.text = "Yes, Please! - For:"
........
}
}, for: UIControlEvents.valueChanged)

swift 不喜欢,我该怎么做?

最佳答案

不幸的是,你不能直接这样做。请记住,您正在处理 Cocoa 框架。它是老式的,用 Objective-C 编写的。它是在 Objective-C 有 block 之前很久就写的,而且 long 在 Swift 存在之前就已经写好了。它没有将 UIControl 的操作函数描述为函数(或匿名函数体,正如您所做的那样)的概念;它必须是一个选择器,也就是说,实际上,它只是目标中方法的名称

您或许可以编写 UIControl 的扩展,或者至少是 UISwitch 的子类,以实现此类功能,或者可能有第三方框架可以帮助您;但就目前情况而言,您的想法虽然对于习惯 Swift 的人来说足够自然,但注定要失败。

关于Swift UISwitch 选择器内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40597755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com