Question

J'ai dessiné un graphique à courbes dans Quartz et une "bulle" UIView que j'aimerais bien faire apparaître lorsque l'utilisateur touche la ligne de tracé et parcourt son doigt le long de celle-ci. La bulle affiche des informations graphiques supplémentaires.

J'aimerais associer UIView à l'intrigue CGPath, mais j'ai du mal à déterminer de manière conceptuelle la meilleure façon de procéder. Je sais que vous pouvez animer une vue le long d'un CGPath, mais cela ne semble pas fonctionner pour moi, car l'utilisateur doit "effleurer" le graphique lui-même avec son doigt plutôt qu'avec une animation automatique.

Quelqu'un a-t-il des suggestions pour une bonne approche?

Était-ce utile?

La solution

Peut-être que vous n'avez pas besoin de l'animer. Les événements tactiles défilent assez rapidement - peut-être que si vous déplacez simplement la vue vers l'emplacement approprié par rapport au toucher sans animation, le déplacement sera suffisamment fluide. Si cela ne suffit pas, vous devrez animer le long du segment du graphique à partir de l'emplacement actuel de la vue (voir CALayer presentationLayer) jusqu'à l'emplacement souhaité. La clé est que vous animerez chaque fois que vous recevez un événement tactile (et que les animations précédentes seraient annulées).

Autres conseils

Comme Neil l'a dit, votre meilleur choix est de vous déplacer avec les événements tactiles, cela semblera fluide si vous ne faites que déplacer une vue. Utilisez [aTouch locationInView: view] pour obtenir la position du toucher, puis recherchez le point le plus proche sur le chemin (utilisez éventuellement la valeur x et recherchez la valeur y sur le chemin pour obtenir le x).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top