【问题标题】:Fast tap gestures in Swift 4 and iOS 11Swift 4 和 iOS 11 中的快速点击手势
【发布时间】:2018-01-18 21:42:26
【问题描述】:

我刚刚制作了一个简单的应用程序来尝试任何类型的手势。我得到了点击手势。所以我想,如果我制作一个快速点击游戏类型的应用程序来计算用户执行的点击量会怎么样。但很快我就遇到了一些问题。

它没有计算所有的水龙头。如果我开始尽可能快地点击,但它跳过了点击。

我的想法是我以编程方式在超级视图中创建了一个视图,并在视图上添加了一个 tapGestureRecognizer。只需将“点击”放入应用程序的标签中即可。

似乎未能按时收到系统手势。

代码:

let tap = UITapGestureRecognizer(target: self, action: #selector(tapped(sender:)));
    tap.numberOfTapsRequired = 1;
    animationView.isUserInteractionEnabled = true;
    animationView.addGestureRecognizer(tap);

功能:

@objc func tapped (sender :UITapGestureRecognizer) {
   self.counter += 1;
   self.lblScore.text = String(self.counter);
}

我有一个“可点击”的动画视图,它可以工作。每次我点击动画视图时,它都会增加“计数器”的值!但是每次点击太快都会出现这个错误:

<_UISystemGestureGateGestureRecognizer: 0x1c01c4b00>: Gesture: Failed to receive system gesture state notification before next touch

【问题讨论】:

  • 你试过什么?请贴出相关代码...
  • 我编辑了我的帖子,代码现在在帖子中。我希望你现在明白了.. 在此先感谢!
  • 欢迎来到 Stack Overflow!这看起来是个好问题。您有代码、详细描述和错误。小提示:如果你能避免大声笑、喋喋不休的材料和请帮助我恳求,那会让你的问题变得更好。我们喜欢这里简洁!
  • @halfer 抱歉,下次我会记住这一点!谢谢

标签: ios swift ios11 swift4 gestures


【解决方案1】:

创建手势:

let panGesture = UIPanGestureRecognizer(target: self, action: #selector(handlePanGesture(_:)))
panGesture.delegate = self
Button.addGestureRecognizer(panGesture)

let longTapGesture = UILongPressGestureRecognizer(target: self, action: #selector(handleLongTapGesture(_:)))
Button.addGestureRecognizer(longTapGesture)

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTapGesture(_:)))
Button.addGestureRecognizer(tapGesture)

let rotateGesture = UIRotationGestureRecognizer(target: self, action: #selector(handleRotateGesture(_:)))
rotateGesture.delegate = self
Button.addGestureRecognizer(rotateGesture)

let pinchGesture = UIPinchGestureRecognizer(target: self, action: #selector(handlePinchGesture(_:)))
pinchGesture.delegate = self
Button.addGestureRecognizer(pinchGesture)    

手势点击事件

extension AddTextVC: UIGestureRecognizerDelegate {
    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        return true
    }

    @IBAction func handlePanGesture(_ recognizer: UIPanGestureRecognizer) {

    }

    @IBAction func handlePinchGesture(_ recognizer: UIPinchGestureRecognizer) {

    }

    @IBAction func handleRotateGesture(_ recognizer: UIRotationGestureRecognizer) 
    {

    }

    @IBAction func handleTapGesture(_ recognizer: UITapGestureRecognizer) {

    }

    @IBAction func handleLongTapGesture(_ recognizer: UITapGestureRecognizer) {

    }
}

【讨论】:

    猜你喜欢
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多