Mueva CALayer a través de UIBezierPath

Tengo una capa que se moverá del punto A al punto B en un UIBezierPath. He encontrado muchas muestras que se refieren a CAAnimation y UIBezierPath. Pero necesito mover mi capa solo de un punto específico a otro en una ruta mejor.

introduzca la descripción de la imagen aquí

Cualquier sugerencia sera apreciada.

Gracias

Esperamos que esto sea útil.

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 su ruta bezier es un círculo o incluso un medio círculo, puede omitir la ruta y, en su lugar, agregar el punto a una capa cuadrada más grande. Establezca el punto como una distancia fija desde el centro de esa capa cuadrada más grande. Luego, puede girar la capa más grande en el eje z alnetworkingedor del centro sea cual sea el número de grados que necesite para moverse. Parece que simplificaría las cosas un poco, aunque no estoy seguro exactamente qué más necesitas que haga.

He estado buscando hacer algo como esto y crear este tutorial, muestra cómo seguir una ruta específica. Funciona con un automobile (un CALayer) y un UIBezierpath como la pista de carreras y se resuelve en este order:

Definir la ruta que debe seguir el automobile (en este caso su BezierPath) Dibujar la línea negra que define la pista; (N / D) Dibujando la línea central blanca y discontinua de la pista; (N / A) Creación de la capa que define el automobile; (tu Capa) Animando el auto a lo largo del path. (¡Lo que le pediste!)

Puede consultar el Post de reference aquí: http://nachbaur.com/2011/01/07/core-animation-part-4/

También puede download el código fuente aquí: http://cdn5.nachbaur.com/wp-content/uploads/2011/01/CALayerAnimTest.zip?25881d

¡espero que esto ayude!

Saludos,

Jorge.