iOS路径/曲线动画的起始位置



我正在使用以下代码为对象设置动画:

CGRect imageFrame = objectToAnimate.frame;
CGPoint viewOrigin;
viewOrigin.y = imageFrame.origin.y + imageFrame.size.height/2;
viewOrigin.x = imageFrame.origin.x + imageFrame.size.width/2;
objectToAnimate.layer.position = viewOrigin;
// Set up path movement
CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.calculationMode = kCAAnimationPaced;
pathAnimation.fillMode = kCAFillModeForwards;
pathAnimation.removedOnCompletion = NO;
CGMutablePathRef curvedPath = CGPathCreateMutable();
CGPathMoveToPoint(curvedPath, NULL, viewOrigin.x, viewOrigin.y);
CGPathAddArc(curvedPath, NULL, viewOrigin.x-[radius intValue], viewOrigin.y, [radius intValue], 0, DEGREES_TO_RADIANS(115), NO);
pathAnimation.path = curvedPath;
pathAnimation.duration = 1.0f;
CGPathRelease(curvedPath);
//Animate one curve
[objectToAnimate.layer addAnimation:pathAnimation forKey:@"curvedFalling"];

一切正常。

当我再次对同一对象调用类似的动画时,该对象会移回其原始起始位置,然后设置动画。如何让它从第一个动画结束后的位置开始动画?

提前感谢!

objectToAnimate.frame在此未更改。动画完成后,您必须更新此处的帧,因为它将用作下一个动画的源。要在这个代码的末尾使用这个:

.
.
.
//Animate one curve
[objectToAnimate.layer addAnimation:pathAnimation forKey:@"curvedFalling"];
 objectToAnimate.frame.origin.x = viewOrigin.x;
 objectToAnimate.frame.origin.y = viewOrigin.y;

最新更新