Как только вы рендерили свой SVG-путь, чтобы он выглядел так, как будто он рисуется карандашом, вы можете просто покрыть все это непрозрачным слоем, а затем анимировать движение этого слоя вдоль пути.
Чтобы найти CGPath
, вдоль которого вы будете перемещать слой, вы можете использовать эту библиотеку: https://github.com/arielelkin/PocketSVG
Это позволит проанализировать данные SVG в UIBezierPath.Тогда:
SvgToBezier *myBezier = [[SvgToBezier alloc] initFromSVGPathNodeDAttr:@"M176.17,369.617c0,0,335.106-189.361,214.894,38.298s129.787,282.978,178.723,42.553C618.724,210.042,834.681,87.702,790,307.915" rect:CGRectMake(0,0,1024,768)];
UIBezierPath *myPath = myBezier.bezier;
CAKeyframeAnimation *mySVGPathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
bounceAnimLeft.duration = 3;
bounceAnimLeft.path = myPath.CGPath;
[myObjectToMove.layer addAnimation:mySVGPathAnimation forKey:@"pathAnimation"];