UIGestureRecognizerState

UIGestureRecognizerState

当我拖动视图并将其放到新位置时,每次都会调用Ended。

当我拖动视图一段时间并将其放到开始时所在的位置时,没有任何调用,我希望调用.Ended或default,但不会发生。

为什么会这样?当用户一致放开视图时,我该如何学习?

var gestureRecognizer = UIPanGestureRecognizer(target: self, action: Selector("dragged:"))
gestureRecognizer.delegate = self
view.addGestureRecognizer(gestureRecognizer)

func dragged(gesture: UIPanGestureRecognizer) {
    switch gesture.state {
    case UIGestureRecognizerState.Began:
        print("calls this everytime touch began")
    case UIGestureRecognizerState.Ended:
        print("doesn't call this everytime")
    default:
        print("never calls this")
    }
}

最佳答案

您几乎应该始终使用UIGestureRecognizerState。 UIGestureRecognizerState.Cancelled作为两个手势之一肯定会在手势结束时调用。这样,您还可以处理用户拖过屏幕的情况。

关于ios - 在某些情况下不调用UIGestureRecognizerState.Ended,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33056319/

10-10 16:44