2013-07-18 4 views
0

Мне нужно добавить бесконечную анимацию для UIImageView от начальной точки до конечной точки, а затем от конечной точки до начальной точки. Я пытаюсь так:CAKeyframeАнимация повторной анимации от начала до конца

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.

Тем не менее, если это действительно бесконечный анимации, то вам не нужен fillMode или removedOnCompletion

0

я тебя, я бы просто использовать:

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

с вариантами

UIViewAnimationOptionRepeat

Смежные вопросы