UITapGesture在前一个结束之前触发

时间:2018-01-26 16:36:17

标签: swift scenekit swift4 uitapgesturerecognizer

我已设置了一个点击手势来完成这样的操作:

sender.state == UIGestureRecognizerState.ended

然而,我可以轻拍多次并且我的物体停留在空中(继续跳跃动作),因为它连续注册轻击手势而不是让它先完成,然后才能注册另一个水龙头。我该如何解决这个问题,以便轻敲手势一次只能发生一次?其他答案建议添加l_dates = ['2017-01-01 19:53:36', '2017-01-01 19:54:36', '2017-01-03 18:15:13', '2017-01-03 18:18:11', '2017-01-03 18:44:35', '2017-01-07 12:50:48'] l_ids = list(range(len(l_dates))) l_values = [x*1000-1 for x in l_ids] l_data = list(zip(l_dates, l_ids, l_values)) df1_ = pd.DataFrame(data = l_data, columns = ['timeStamp', 'usageid', 'values']) ,但它没有效果。

1 个答案:

答案 0 :(得分:0)

通过将sender作为参数传递给jumpUp()函数并在其完成处理程序中添加sender.isEnabled = true来修复它:

@objc func handleSingleTap(_ sender: UITapGestureRecognizer) {
            sender.isEnabled = false
            jumpUp(sender)
    }

func jumpUp(_ sender: UITapGestureRecognizer) {
        if let action = jumpAction {
            addBlocks()
            playerNode.runAction(action, completionHandler: {
                sender.isEnabled = true
            })
        }
    }