在 Swift 中无法识别点击手势(手势开始)
Posted
技术标签:
【中文标题】在 Swift 中无法识别点击手势(手势开始)【英文标题】:Tap gesture (gesture began) not recognised in Swift 【发布时间】:2021-01-28 03:59:27 【问题描述】:UITapGestureRecogniser 开始状态未被识别,只有结束状态被识别。
override func viewDidLoad()
let tapgr = UITapGestureRecognizer(target: self, action: #selector(tapTrigger(recongizer:)))
bottomBar.addGestureRecognizer(tapgr)
@objc func tapTrigger(recongizer: UITapGestureRecognizer)
if recongizer.state == .began
print("recognised") // does not print
else if recogniser.state == .ended
print("ended") //prints
我要做的是在识别触摸时突出显示视图(而不是添加识别器的视图),并在取消触摸时取消突出显示。
【问题讨论】:
点击手势识别器是单一的不连续的。它没有中间状态 有没有办法实现上述行为? 提到的行为没有很好的定义,所以你需要更清楚地定义它。 点击被“取消”是什么意思? 【参考方案1】:您可以使用UILongPressGestureRecognizer
而不是使用UITapGestureRecognizer
来获得不同的状态。
像这样:
let tapgr = UILongPressGestureRecognizer(target: self, action: #selector(tapTrigger(recongizer:)))
tapgr.minimumPressDuration = 0
bottomBar.addGestureRecognizer(tapgr)
@objc func tapTrigger(recongizer: UITapGestureRecognizer)
if recongizer.state == .began
print("recognised")
else if recongizer.state == .ended
print("ended") //prints
【讨论】:
以上是关于在 Swift 中无法识别点击手势(手势开始)的主要内容,如果未能解决你的问题,请参考以下文章
使用点击手势识别器时,IOS swift应用程序无法正常工作
Swift - 如何将点击手势添加到 UIViews 数组?