ios - swift : 方法选择器的问题 #selector
本文介绍了ios - swift : 方法选择器的问题 #selector的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
let singleTap = UITapGestureRecognizer(target: self, action: #selector(LiveHallTableVC.singleTapAction))
func singleTapAction() {
print("点击图")
}
不带参的方法可以,没有问题。带个参就不懂了,求助 :
func singleTapAction(num : Int) {
print("点击\(num)图")
}
解决方案
action参数需要的其实是一个用#selector(xx)的方式实现的key,等真正需要的时候才会根据这个key去获取函数真正的地址,它只是个key不是真正的方法,所以你在初始化gesture的时候在#selector传什么参数都是没用的
selector的有固定的写法,#selector大约是Swift2.2之后的写法,括号里需要写函数名字,对于有参数的用:表示,例如func test(a:Int,b:Int) 相应的selector写法就是#selector(test(_: b:))
对于gesture的action是系统约定好的,只有一个参数就是gesture自己,所以相应的func都会写成 xxGestureAction(gesture: UIGestureRecognizer)的形式
如果你在action里需要更多的数据,你可以子类化相应的UIGestureRecognizer
这篇关于ios - swift : 方法选择器的问题 #selector的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文