나는 사진을 꼬집고 동시에 이동할 수있는 사진 앱과 유사한 상호 작용을 재현하려고합니다. 터치 팬을 추가하거나 제거하면 팬이 완벽하게 작동합니다.핀치 및 팬 제스처 인식기를 동시에 처리 할 때 터치 위치를 어떻게 변경합니까?
내 코드에서 터치의 위치를 사용하여보기를 이동합니다. 두 손가락으로 드래그하면 팬 제스처 인식기가 두 손가락 사이에 포인트를 놓습니다.하지만 손가락을 올리면 포인트가 한 손가락의 포인트로 변경되어보기가 새 위치로 급히 움직입니다. .
최대 NumberOfTouches를 1로 설정해도 손가락 1, 팬, 손가락 2, 팬, 리프트 핑거 1로 터치 할 수 있고 손가락 2의 위치로 움직일 수 있기 때문에 문제가 해결되지 않습니다. 이미지를 확대/축소하고 회전 할 수 있기 때문에 두 손가락으로 패닝 할 수 있습니다.
다른 이유로 UIScrollView를 사용할 수 없지만 그 문제가 없다는 것을 알고 있습니다.
제가 생각할 수있는 유일한 해결책은 손가락을 추가하거나 제거 할 때마다 초기 터치 위치를 얻고 이전 위치를 기준으로 새 위치를 오프셋하는 것입니다. 하지만 그 정보를 얻는 방법을 모르겠습니다.
API가 있습니까? 위의 방법이 유일한 방법입니까, 그렇다면 어떻게해야합니까?
UIGestureRecognizer'위치 (in :)'는 중심입니다. 그것은 터치의 위치가 아닙니다. 터치 위치는'location (ofTouch : in :)'또는 UITouch'location (in :)'입니다. – matt
알아. 하지만 기본적으로 내가 원하는대로 기본값입니다. 아래에 해결책을 게시했습니다. 당신이 뭔가 더 잘 알고 있다면 나는 알고 싶습니다. – EdwardSanchez
문제는 팬 제스처에 응답하여보기를 드래그 가능하게 만드는 올바른 방법은'location (in :)'을 사용하는 것이 아니라는 것입니다. 그런 식으로하면 인생을 불필요하게 복잡하게 만듭니다. – matt