2009-10-27 6 views
0

Quartz에서 그린 선 그래프와 사용자가 단일 플롯 선을 터치 할 때 이상적으로 튀어 나오고 싶을 UIView '버블'이 있습니다. 손가락을 따라 움직입니다. 버블은 추가 그래프 정보를 표시합니다.터치 위치에 따라 CGPath를 따라 UIView 이동하기

나는 CGPath 플롯에 UIView를 '부착'하고 싶지만, 개념적으로 이것을 수행하는 가장 좋은 방법을 생각하고 있습니다. 나는 CGPath를 따라 뷰를 애니메이트 할 수 있다는 것을 알고 있지만, 사용자가 자동 ​​애니메이션이 아닌 손가락으로 그래프를 따라 '스크럽 (scrub)'해야하기 때문에 이것이 효과가있는 것 같지 않습니다.

누구나 좋은 접근 방법에 대한 제안이 있습니까?

답변

1

어쩌면 애니메이션을 적용 할 필요가 없을 수도 있습니다. 터치 이벤트는 매우 빠르게 이동합니다. 애니메이션을 사용하지 않고 터치에 상대적으로 적절한 위치로 뷰를 이동하면 이동이 원활 해집니다. 그래도 충분하지 않다면, 뷰의 현재 위치 (CALayer presentationLayer 참조)에서 원하는 위치까지 그래프 세그먼트를 따라 애니메이션을 적용해야합니다. 핵심은 터치 이벤트를받을 때마다 애니메이트 할 것이라는 것입니다 (이전 애니메이션은 취소됩니다).

1

Neil이 말했듯이 가장 좋은 방법은 터치 이벤트로 이동하는 것입니다. 수행중인 모든 것이보기를 움직이는 경우 원활하게 보일 것입니다. [aTouch locationInView : view]를 사용하여 터치의 위치를 ​​얻은 다음 경로에서 가장 가까운 점을 찾습니다 (x 값을 사용하고 x 경로의 y 값을 조회 할 수 있습니다).

관련 문제