2014-11-22 7 views
0

팬 제스처 인식기를 사용 중이므로 조치를 취하기 위해 초기 터치 포인트를 감지해야합니다. 다음 코드를 사용하고 있습니다.팬 제스처 인식기 : 팬 제스처가 해제되면 터치 위치가 충돌합니다.

@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

무엇이 문제 일 수 있습니까?

답변

6

제스처가 끝나면 더 이상 터치가 없으므로 검색 할 인덱스 0에 더 이상 터치하지 않습니다. 이 뷰의 좌표 공간에서 제스처 인식기의 추가하는 터치 위치를 얻기 위해 일반적으로 더 유용하기 때문에,

let touchPoint = sender.locationInView(sender.view) 

(이 뷰에 대한 sender.view보다는 nil 사용 : 당신은 아마 그냥 locationInView 방법을 사용하려면 ~ 윈도우의 좌표 공간보다)

+0

설명 주셔서 감사합니다! 이제 작동합니다. –

관련 문제