好吧,我再说一遍:
我正在为填充但未描边的 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"];
嗯,它工作正常。但是这些路径的形状很奇怪,而且是动态形成的。我尝试确保路径之间的点数始终相同,这很有帮助。但是我仍然会得到一些我不想动画的路径动画。我真正想做的是保持路径的一部分静态,而路径的其余部分从一侧长出或收缩回其中,或者在某些情况下,从主路径分离到单独的子路径。
我考虑过找到中间路径阶段并首先为这些阶段制作动画,然后从那里完成动画,但我觉得可能还有另一种解决方案。