触地重复事件不起作用
Posted
技术标签:
【中文标题】触地重复事件不起作用【英文标题】:Touch down repeat event does not works 【发布时间】:2019-08-29 21:42:24 【问题描述】:我希望我的按钮在用户单击它两次时更改其背景图像。为此,我正在使用 touchDownRepeat 事件。但是它不起作用。
button.addTarget(self, action: #selector(clickedRepeatOnPlate), for: .touchDownRepeat)
【问题讨论】:
【参考方案1】:至于苹果的oficial documentation.touchDownRepeat
:
控件中的重复触地事件;对于此事件,UITouch tapCount 方法的值大于一。
用户每次点击按钮多次触发该事件,所以点击四次会触发该事件3次。
要仅触发双击,您需要创建一个UITapGesture
并在其numberOfTapsRequired
上设置2:
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(clickedRepeatOnPlate))
tapGesture.numberOfTapsRequired = 2
button.addGestureRecognizer(tapGesture)
编辑
如果需要获取发送者按钮作为函数参数,可以如下操作:
func addDoubleTapEvent()
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(clickedRepeatOnPlate(gesture:)))
tapGesture.numberOfTapsRequired = 2
button.addGestureRecognizer(tapGesture)
@objc func clickedRepeatOnPlate(gesture: UITapGestureRecognizer)
guard let button = gesture.view as? UIButton else return
print(button.titleLabel?.text)
输出
Optional("button")
【讨论】:
【参考方案2】:这让您可以设置双击视图的手势。
let tap = UITapGestureRecognizer(target: self, action: #selector(doubleTapped))
tap.numberOfTapsRequired = 2
view.addGestureRecognizer(tap)
记住 UIButton 是 UIView
【讨论】:
以上是关于触地重复事件不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Jquery .select()在焦点事件上不起作用[重复]
提交事件 preventDefault() 在 os9 的 iPad/iPhone 上不起作用 [重复]
Jquery UI Touch Punch点击事件在Android应用程序中不起作用[重复]