Pan Gesture Recognizer:释放平移手势后触摸崩溃的位置

Ber*_*can 0 ios uipangesturerecognizer swift

我正在使用平移手势识别器,我需要检测初始触摸点才能采取行动.我使用以下代码;

@IBAction func panDetected(sender: UIPanGestureRecognizer) {
    let touchPoint = sender.locationOfTouch(0, inView: nil)
    println(touchPoint.x)
}
Run Code Online (Sandbox Code Playgroud)

这些功能在我移动手指时打印触摸点.然而,一旦我从屏幕上抬起手指,它就会崩溃.这是崩溃消息;

Terminating app due to uncaught exception 'NSRangeException', reason: '-[UIPanGestureRecognizer locationOfTouch:inView:]: index (0) beyond bounds (0).'
Run Code Online (Sandbox Code Playgroud)

我已经尝试过设置最小和最大触摸限制,正如这篇文章所暗示的那样; 在iOS中查看触摸位置时,PAN手势会崩溃

可能是什么问题?

Noa*_*oon 7

您遇到的问题是,一旦手势结束,它就不再有任何触摸,因此不再需要在索引0处进行检索.您可能只想使用该locationInView方法:

let touchPoint = sender.locationInView(sender.view)
Run Code Online (Sandbox Code Playgroud)

(这使用sender.view而不是nil视图,因为在手势识别器添加到的视图的坐标空间中获取触摸位置通常比在窗口的坐标空间中更有用)