Я пытаюсь анимировать рисунок этого конкретного изображения:
однако я понял, что пытаться нарисовать это с помощью CGPath на самом деле невозможно. Я подумал, что следующим решением будет попытаться показать это изображение на основе близкого приближения к его пути. Так что мне удалось нарисовать CGPath, близкий к этому изображению:
Я надеялся, что кто-нибудь поможет мне разобраться!
У меня есть следующий код, чтобы хотя бы обвести путь. Я использую SVGKit, чтобы помочь с созданием пути из файла SVG:
-(void)animateItAll{
self.thePath = [UIBezierPath bezierPathWithCGPath:[PocketSVG pathFromSVGFileNamed:@"SquiggleLine"]];
self.thePath.lineCapStyle = kCGLineCapRound;
self.thePath.lineJoinStyle = kCGLineJoinRound;
CAShapeLayer *shapeView = [[CAShapeLayer alloc] init];
[shapeView setPath:self.thePath.CGPath];
shapeView.fillColor = [[UIColor clearColor] CGColor];
shapeView.strokeColor = [[UIColor redColor] CGColor];
shapeView.lineWidth = 8.0f;
[[self.view layer] addSublayer: shapeView];
CABasicAnimation *pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];
pathAnimation.duration = 1.0;
pathAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
pathAnimation.fromValue = [NSNumber numberWithFloat:0.0f];
pathAnimation.toValue = [NSNumber numberWithFloat:1.0f];
//pathAnimation.toValue = (id) self.thePath.CGPath;
[shapeView addAnimation:pathAnimation forKey:nil];
}