Перемещение UIView вдоль CGPath в соответствии с позицией касания - PullRequest
0 голосов
/ 27 октября 2009

У меня есть линейный график, который я нарисовал в Quartz, и «пузырь» UIView, который я бы хотел, чтобы он идеально всплывал, когда пользователь касается одной линии графика и перемещает по ней палец. В пузыре отображается дополнительная графическая информация.

Я бы хотел присоединить UIView к графику CGPath, но у меня возникли проблемы с концептуальным поиском лучшего способа сделать это. Я знаю, что вы можете анимировать представление вдоль CGPath, но мне кажется, что это не сработает, потому что пользователь должен «чистить» пальцем сам график, а не какую-либо автоматическую анимацию.

Есть ли у кого-нибудь предложения о хорошем подходе?

Ответы [ 2 ]

1 голос
/ 17 января 2010

Как сказал Нейл, вам лучше всего двигаться с сенсорными событиями, это будет выглядеть гладко, если все, что вы делаете - это перемещаете представление. Используйте [aTouch locationInView: view], чтобы получить позицию касания, затем найдите ближайшую точку на пути (возможно, используйте значение x и найдите значение y на пути для x).

1 голос
/ 28 октября 2009

Может быть, вам не нужно его оживлять. События касания пролетают довольно быстро - возможно, если вы просто переместите представление в соответствующее место относительно касания без анимации, движение будет достаточно плавным. Если этого недостаточно, вам придется анимировать вдоль сегмента графика от текущего местоположения представления (см. CALayer presentationLayer) до желаемого местоположения. Ключ заключается в том, что вы будете анимировать каждый раз, когда получаете сенсорное событие (и все предыдущие анимации будут отменены).

...