ios - 如何在 .Ended 状态下访问 Pan Gesture 的初始点

标签 ios swift uigesturerecognizer uipangesturerecognizer cgpoint

我正在尝试在我的应用程序中实现一个平移手势,我需要在其中访问处于 .Ended 状态的初始点。

这是代码。

func handleTestViewTap (panRecognizer: UIPanGestureRecognizer){

    var locationOfBeganTap: CGPoint?

    if panRecognizer.state == UIGestureRecognizerState.Began {           
        locationOfBeganTap = panRecognizer.locationInView(view)
        print("locationOfBeganTap in BEGAN State -> .\(locationOfBeganTap)")

    } else if panRecognizer.state == UIGestureRecognizerState.Ended {            
        print("locationOfBeganTap -> .\(locationOfBeganTap)")
        print("locationOfBeganTap in ENDED State -> .\(locationOfBeganTap)")

    }     
}

现在,这是输出:

locationOfBeganTap in BEGAN State -> .Optional((195.5, 120.0))
locationOfBeganTap in ENDED State -> .nil

我无法理解为什么 locationOfBeganTap.Ended 状态下为 nil

有人可以分享代码以在 .Ended 状态下访问 locationOfBeganTap...

最佳答案

您这样做的方式行不通。相反,在最后计算它:

func handleTestViewTap (panRecognizer: UIPanGestureRecognizer){

    if panRecognizer.state == UIGestureRecognizerState.Ended {            
        print("locationOfBeganTap -> (.\(touch.locationInView(view).x - touch.translationInView(view).x), .\(touch.locationInView(view).y - touch.translationInView(view).y))")
        print("location in ENDED State -> .\(touch.locationInView(view))")
    }     
}

关于ios - 如何在 .Ended 状态下访问 Pan Gesture 的初始点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39793491/

相关文章:

html - iOS - Safari - 图像未完全渲染/被切断

ios - Objective-C/Swift (iOS) 何时在 View/ViewController 工作流程中应用自动约束?

ios - 双指缩放总是使用左上角作为原点

objective-c - locationOfTouch 和 numberOfTouches

objective-c - iPad 应用程序在 NSOperationQueue 期间卡住

iOS App,获取文本内容

arrays - 比较协议(protocol)引用

ios - 为图片分配图案信息 (iOS)

ios - Swift:尽管我调用了所需的代码,但导航栏仍在隐藏?

iOS 快速指针