[英]Single tap, created by UITapGestureRecognizer, doesn't work on UIButton
I have a lot of UIButtons without any acion. 我有很多没有任何acion的UIButton。 I want call some action in tap handler function. 我想在点击处理程序函数中调用一些动作。 I create single tap with UITapGestureRecognizer. 我使用UITapGestureRecognizer创建一个点击。 When I tap not on my UIButton, single tap handler work. 当我不在 UIButton上点击时,单击处理程序就可以工作。 When I tap on my UIButton, I see animation of pressing this button, but single tap handler doesn't work. 当我点击UIButton时,我看到按下此按钮的动画,但是单点击处理程序不起作用。 Also I create double tap, and it works fine. 我也创建双击,它工作正常。
Question №1 问题№1
What I can do with single tap? 轻按一下我可以做什么? Handler should work, when I tap on my UIButton. 当我点击UIButton时,处理程序应该可以工作。
Question №2 问题№2
How I can get UIButton in tap handler? 如何在点击处理程序中获取UIButton? I need get text label from this button. 我需要从此按钮获取文本标签。
Part of my code: 我的部分代码:
override func viewDidLoad() {
...
let singleTap = UITapGestureRecognizer(target: self, action: "singleTap:")
singleTap.numberOfTapsRequired = 1
singleTap.numberOfTouchesRequired = 1
view.addGestureRecognizer(singleTap)
let doubleTap = UITapGestureRecognizer(target: self, action: "doubleTap:")
doubleTap.numberOfTapsRequired = 2
doubleTap.numberOfTouchesRequired = 1
view.addGestureRecognizer(doubleTap)
singleTap.requireGestureRecognizerToFail(doubleTap)
...
}
func doubleTap(sender: UIGestureRecognizer) {
if sender.state == .Ended {
print("doubleTap")
}
}
func singleTap(sender: UIGestureRecognizer) {
if sender.state == .Ended {
print("singleTap")
}
}
func addButton(time:String, x:CGFloat, y:CGFloat, width:CGFloat, height:CGFloat, tag: Int) -> UIButton {
let button = UIButton(type: UIButtonType.System) as UIButton
button.frame = CGRectMake(x, y, width, height)
button.setTitle(time, forState: UIControlState.Normal)
button.tag = tag
self.scrollView.addSubview(button)
return button
}
If you want to add TapGesture into Button then do it like this way: 如果要将TapGesture添加到Button中,请按照以下方式进行操作:
let singleTap = UITapGestureRecognizer(target: self, action: "singleTap:")
singleTap.numberOfTapsRequired = 1
singleTap.numberOfTouchesRequired = 1
yourButton.addGestureRecognizer(singleTap)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.