2013-07-18 42 views
0

我需要为UIImageView从起点到终点添加无限动画,然后从终点到起点添加无限动画。 我想是这样的:从起点CAKeyframeAnimation从头到尾重复动画

CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; 
pathAnimation.calculationMode = kCAAnimationPaced; 
pathAnimation.fillMode = kCAFillModeForwards; 
pathAnimation.removedOnCompletion = NO; 
pathAnimation.duration = 2.0; 
pathAnimation.repeatCount = HUGE_VALF; 
pathAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 

CGPoint endPoint = CGPointMake(320.0f - 30.0f, self.myImage.frame.size.height); 
CGMutablePathRef curvedPath = CGPathCreateMutable(); 
CGPathMoveToPoint(curvedPath, NULL, self.myImage.frame.origin.x, self.myImage.frame.origin.y); 
CGPathAddCurveToPoint(curvedPath, NULL, endPoint.x, self.myImage.frame.origin.y, 
         endPoint.x, self.myImage.frame.origin.y, endPoint.x, endPoint.y); 
pathAnimation.path = curvedPath; 
CGPathRelease(curvedPath); 

[self.myImage.layer addAnimation:pathAnimation forKey:@"curveAnimation"]; 

MYIMAGE移动到结束好了,但在那之后移动到起点和从起点重复动画结束。所以,从结束点开始没有动画。有可能吗?

回答

4

动画回到相同的方式,你来是设置autoreverses为简单YES

这就是说,如果它确实是一个无限的动画,那么你不需要fillModeremovedOnCompletion

0

我是你,我会简单地使用:

[UIVIew animateWithDuration:delay:options:animations:completion:]

与选项

UIViewAnimationOptionRepeat