0

好吧,我再说一遍:

我正在为填充但未描边的 CAShapeLayer 的路径值设置动画,我想让它的动画更流畅。这是基本的动画代码:

CABasicAnimation * pathAnimation = [CABasicAnimation animationWithKeyPath:@"path"];
        pathAnimation.toValue = (id)targetPath.CGPath;
        pathAnimation.fromValue = (id)shapePath.CGPath;
        //pathAnimation.fromValue = (id)((CAShapeLayer*)[currentShapeLayers objectForKey:key]).path;
        pathAnimation.repeatCount = 0;
        pathAnimation.duration = animationTime;
        pathAnimation.autoreverses = NO;
        [[currentShapeLayers objectForKey:key] addAnimation:pathAnimation forKey:@"animatePath"];

嗯,它工作正常。但是这些路径的形状很奇怪,而且是动态形成的。我尝试确保路径之间的点数始终相同,这很有帮助。但是我仍然会得到一些我不想动画的路径动画。我真正想做的是保持路径的一部分静态,而路径的其余部分从一侧长出或收缩回其中,或者在某些情况下,从主路径分离到单独的子路径。

我考虑过找到中间路径阶段并首先为这些阶段制作动画,然后从那里完成动画,但我觉得可能还有另一种解决方案。

4

1 回答 1

0

我找到了解决方案。我不确定它是否是最有效的解决方案,因为它涉及大量重绘,但它确实允许对动画的行为方式进行大量控制。

于 2013-08-01T19:16:36.060 回答