1
我基本上需要一種以圖形方式創建用於導入到我的應用的路徑的方法,以便我可以在CAKeyframeAnimation對象中將它們用作動畫路徑。我也有點時間推出我自己的獨立工具來做到這一點。所以我認爲SVGkit可能是最快/最簡單的方法。如何從SVGkit獲取CGPathRef?或更好的解決方案來爲CAKeyframeAnimation創建CGPath?
但我現在無法正確添加構成整個路徑的不同子路徑。
UPDATE:
到目前爲止,我有這樣的:
// l has already been setup and added to the main view layer:
// it's the CALayer whose position I'm trying to animate over the path.
SVGDocument *document = [SVGDocument documentNamed:@"pathtest.svg"];
CALayer *f = [document layerTree];
CGMutablePathRef path = CGPathCreateMutable();
for(int i = 0; i < [f.sublayers count]; i++)
CGPathAddPath(path, NULL, ((CAShapeLayer*)[f.sublayers objectAtIndex:i]).path);
CAKeyframeAnimation *a = [CAKeyframeAnimation animationWithKeyPath:@"position"];
a.path = path;
a.fillMode = kCAFillModeForwards;
a.removedOnCompletion = NO;
a.duration = 5.0;
[l addAnimation:a forKey:nil];
上面的代碼是 '差不多' 的權利(但不完全,搞笑):不同的子路徑使我的路徑是添加到主要路徑。但子路徑似乎不會被添加到以前的子路徑的末尾。也就是說,當運行動畫時,CALayer似乎翻譯了一段路徑,然後跳轉到一個不同的位置,從第二個子路徑平滑地開始,等等。對於組成主路徑的所有子路徑。
任何想法?