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

时间:2014-11-22 20:12:21

标签: ios swift uipangesturerecognizer

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

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

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

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

我已经尝试过设置最小和最大触摸限制,正如这篇文章所暗示的那样; PAN Gesture is crashing while taking the location of touch in view in iOS

可能是什么问题?

1 个答案:

答案 0 :(得分:7)

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

let touchPoint = sender.locationInView(sender.view)

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