Déplacer CALayer via UIBezierPath

J'ai une couche qui va passer du point A au point B sur un UIBezierPath. J'ai trouvé beaucoup d'exemples qui font reference à CAAnimation et UIBezierPath. Mais je dois déplacer ma couche seulement d'un point spécifié à l'autre sur le path Bézier.

entrez la description de l'image ici

Toute suggestion serait appréciée.

Merci

J'espère que cela sera utile.

UIBezierPath *trackPath = [UIBezierPath bezierPath]; . . . CAKeyframeAnimation *anim = [CAKeyframeAnimation animationWithKeyPath:@"position"]; anim.path = trackPath.CGPath; anim.repeatCount = 1; anim.duration = 2.0; [layerToAnimate addAnimation:anim forKey:@"pathGuide"]; 

Si votre path de Bézier est un cercle ou même un demi-cercle, vous pouvez simplement sauter le path et append à la place le point à un plus grand carré. Définissez le point à une distance fixe du centre de cette couche carrée plus grande. Ensuite, vous pouvez simplement faire pivoter la plus grande couche sur l'axe z autour du centre quel que soit le nombre de degrés dont vous avez besoin pour vous déplacer. On dirait que cela simplifierait un peu les choses, même si je ne suis pas sûr de savoir exactement ce que vous avez besoin de faire.

J'avais cherché à faire quelque chose comme ça et à monter ce tutoriel, il montre comment suivre un path spécifique. Il fonctionne avec une voiture (un CALayer) et un UIBezierpath comme piste de course et est résolu dans cet ordre:

Définir le path que la voiture doit suivre (dans ce cas votre BezierPath) Tracer la ligne noire qui définit la piste; (N / A) Dessin de l'axe pointillé blanc de la piste; (N / A) Création de la couche définissant la voiture; (votre couche) Animation de la voiture le long du path. (Ce que votre demandé!)

Vous pouvez consulter la reference Post ici: http://nachbaur.com/2011/01/07/core-animation-part-4/

Vous pouvez également download le code source ici: http://cdn5.nachbaur.com/wp-content/uploads/2011/01/CALayerAnimTest.zip?25881d

J'espère que cela t'aides!

Cordialement,

Jorge.