首页 > 解决方案 > 在 Swift 中无法识别轻按手势(手势开始)

问题描述

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
        }
}

我要做的是在识别触摸时突出显示视图(而不是添加识别器的视图),并在取消触摸时取消突出显示。

标签: swiftuigesturerecognizeruitapgesturerecognizer

解决方案


而不是使用UITapGestureRecognizer你可以使用UILongPressGestureRecognizer来获得不同的状态。

像这样:

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
        }
}

推荐阅读