【发布时间】:2017-01-30 02:12:53
【问题描述】:
我有两个控件副本(称为RatingControl)。当有人双击它们时,如何编写可以在正确对象上调用的处理程序?
我有:
@IBOutlet weak var ratingControl: RatingControl!
@IBOutlet weak var ratingControl2: RatingControl!
在TableViewController 内,然后
override func viewDidLoad() {
super.viewDidLoad()
let tapGR = UITapGestureRecognizer(target: ratingControl, action: #selector(RatingControl.doubleTap(_:)))
tapGR.numberOfTapsRequired = 2
self.view.addGestureRecognizer(tapGR)
let tapGR2 = UITapGestureRecognizer(target: ratingControl2, action: #selector(RatingControl.doubleTap(_:)))
tapGR2.numberOfTapsRequired = 2
self.view.addGestureRecognizer(tapGR2)
}
RatingControl.doubleTap(_) 是一个无害的事件处理程序。
当双击第二个评级控件时,doubleTap 方法被调用,但被调度到第一个评级控件对象上!
我尝试在一个 UITapGestureRecognizer 上设置两个目标,但遇到了同样的问题。
非常感谢!
【问题讨论】:
-
怎么样:
let tapGR = UITapGestureRecognizer(target: self, action: #selector(RatingControl.doubleTap(_:))) tapGR.numberOfTapsRequired = 2 ratingControl.addGestureRecognizer(tapGR) let tapGR2 = UITapGestureRecognizer(target: self, action: #selector(RatingControl.doubleTap(_:))) tapGR2.numberOfTapsRequired = 2 ratingControl2.addGestureRecognizer(tapGR2) -
叹息。非常感谢。这就像一个魅力。
-
@nynohu 与其在评论中发布一堆不可读的代码,不如发布一个答案?
-
@rmaddy 好的,我知道了,作为答案发布。
-
如果我们已经回答了您的问题,您应该接受其中一个答案。选择您认为最好的答案,或者在答案质量相同的情况下第一个回答您的问题。
标签: ios swift uitapgesturerecognizer