Animando entre dos formas de camino bezier

Me resultó difícil animar unUIImageView entre dos estados: su marco rectangular original y una nueva forma creada con unUIBezierPath. Hay muchas técnicas diferentes mencionadas, la mayoría de las cuales no me funcionaron.

Primero fue darse cuenta de que usar la animación de bloque UIView no funcionaría; evidentemente uno no puede realizar animaciones de subcapa en unaanimateWithDuration: bloquear. (veraquí yaquí)

Eso se fueCAAnimation, con las subclases concretas comoCABasicAnimation. Pronto me di cuenta de que uno no puede animar desde una vista que no tieneCAShapeLayer a uno que lo hace (veraquí, por ejemplo).

Y no pueden ser solo dos rutas de capa de forma, sino que "la animación de la ruta de una capa de forma solo funciona cuando estás animando me gusta" (veraquí)

Con eso en su lugar, vienen los problemas más mundanos, como qué usar parafromValue ytoValue (deberían ser unCAShapeLayero unCGPath?), a qué agregar la animación (ellayer, o lamask?), etc.

Parecía que había tantas variables; ¿Qué combinación me daría la animación que estaba buscando?

Respuestas a la pregunta(3)

Su respuesta a la pregunta