Me pregunto si hay una manera de hacer esto usando Core Animation. Específicamente, agrego una subcapa a una NSView personalizada con respaldo de capa y establezco su delegado a otra NSView personalizada. drawInRect método de esa clase dibuja una sola CGPath:Cómo animar el dibujo de un CGPath?
- (void)drawInRect:(CGRect)rect inContext:(CGContextRef)context
{
CGContextSaveGState(context);
CGContextSetLineWidth(context, 12);
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 0, 0);
CGPathAddLineToPoint(path, NULL, rect.size.width, rect.size.height);
CGContextBeginPath(context);
CGContextAddPath(context, path);
CGContextStrokePath(context);
CGContextRestoreGState(context);
}
Mi efecto deseado sería para animar el trazado de esta línea. Es decir, me gustaría que la línea se "estire" de forma animada. Parece que habría una manera simple de hacer esto usando Core Animation, pero no he podido encontrar ninguno.
¿Tiene alguna sugerencia sobre cómo podría lograr este objetivo?
FWIW, CAShapeLayer es una excelente opción para animar rutas arbitrarias. Pero por una sola línea recta, me quedaría con la respuesta de Noah. :-) –