如何解决通过选择器传递UItapgestureRecognizer的额外参数
简短答案:否
选择器由调用UITapGestureRecognizer
,您对其选择的参数没有任何影响。
但是,您可以做的是查询识别器的view
属性以获取相同的信息。
func doubleTapComment(recognizer: UIGestureRecognizer) {
if recognizer.view == label1 {
...
}
else if recognizer.view == label2 {
...
}
}
解决方法
我有两个标签,Label1和Label2。我想通过创建两个标签的UITTapRecognizer创建UITTapRecognizer,以使用传递参数的选择器来调用同一个函数,从而使打印出哪个标签的功能单一。下面是完成此操作的漫长方法,虽然比较麻烦,但可以正常工作。如果我知道如何将参数(Int)传递给选择器,那将是一个更干净的选择。
let topCommentLbl1Tap = UITapGestureRecognizer(target: self,action: #selector(DiscoverCell().doubleTapTopComment1))
topCommentLbl1Tap.numberOfTapsRequired = 2
topCommentLbl1.userInteractionEnabled = true
topCommentLbl1.addGestureRecognizer(topCommentLbl1Tap)
let topCommentLbl2Tap = UITapGestureRecognizer(target: self,action: #selector(DiscoverCell().doubleTapTopComment2))
topCommentLbl2Tap.numberOfTapsRequired = 2
topCommentLbl2.userInteractionEnabled = true
topCommentLbl2.addGestureRecognizer(topCommentLbl2Tap)
func doubleTapTopComment1() {
print("Double Tapped Top Comment 1")
}
func doubleTapTopComment2() {
print("Double Tapped Top Comment 2")
}
有没有办法修改选择器方法,以便我可以做类似的事情
func doubleTapTopComment(label:Int) {
if label == 1 {
print("label \(label) double tapped")
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。