Swift UISwitch 选择器内联
Posted
技术标签:
【中文标题】Swift UISwitch 选择器内联【英文标题】:Swift UISwitch Selector inline 【发布时间】:2016-11-14 21:02:35 【问题描述】:我知道我应该像这样添加目标:
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不喜欢这个,怎么办?
【问题讨论】:
【参考方案1】:很遗憾,您不能直接执行此操作。请记住,您正在处理 Cocoa 框架。它既古老又过时,是用 Objective-C 编写的。它早在 Objective-C 出现块之前就已经写好了,而 long 在 Swift 出现之前就已经写好了。它没有将 UIControl 的操作函数描述为 function (或匿名函数体,就像你正在做的那样)的概念;它必须是一个选择器,也就是说,实际上,仅仅是目标中方法的名称。
您也许可以为 UIControl 编写一个扩展,或者至少是一个 UISwitch 子类来实现这种事情,或者可能有第三方框架可以帮助您;但就目前情况而言,你的想法虽然对习惯 Swift 的人来说很自然,但注定要失败。
【讨论】:
以上是关于Swift UISwitch 选择器内联的主要内容,如果未能解决你的问题,请参考以下文章