由 UITapGestureRecognizer 创建的单击不适用于 UIButton
Single tap, created by UITapGestureRecognizer, doesn't work on UIButton
我有很多没有任何动作的 UIButton。我想在 tap 处理函数中调用一些动作。我使用 UITapGestureRecognizer 创建单击。当我在我的 UIButton 上点击 not 时,单击处理程序工作。当我点击我的 UIButton 时,我看到按下此按钮的动画,但单击处理程序不起作用。我还创建了双击,它工作正常。
第 1 题
单击可以做什么?当我点击我的 UIButton 时,处理程序应该可以工作。
第 2 题
如何在点击处理程序中获取 UIButton?我需要从此按钮获取文本标签。
我的部分代码:
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
}
如果你想在 Button 上添加 Tap Gesture,可以这样操作:
let singleTap = UITapGestureRecognizer(target: self, action: "singleTap:")
singleTap.numberOfTapsRequired = 1
singleTap.numberOfTouchesRequired = 1
yourButton.addGestureRecognizer(singleTap)
我有很多没有任何动作的 UIButton。我想在 tap 处理函数中调用一些动作。我使用 UITapGestureRecognizer 创建单击。当我在我的 UIButton 上点击 not 时,单击处理程序工作。当我点击我的 UIButton 时,我看到按下此按钮的动画,但单击处理程序不起作用。我还创建了双击,它工作正常。
第 1 题
单击可以做什么?当我点击我的 UIButton 时,处理程序应该可以工作。
第 2 题
如何在点击处理程序中获取 UIButton?我需要从此按钮获取文本标签。
我的部分代码:
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
}
如果你想在 Button 上添加 Tap Gesture,可以这样操作:
let singleTap = UITapGestureRecognizer(target: self, action: "singleTap:")
singleTap.numberOfTapsRequired = 1
singleTap.numberOfTouchesRequired = 1
yourButton.addGestureRecognizer(singleTap)