- (void)addAniamtion
{
CABasicAnimation *translation = [CABasicAnimation animationWithKeyPath:@"position"];
translation.fromValue = [NSValue valueWithCGPoint:CGPointMake(75, 75)];
translation.toValue = [NSValue valueWithCGPoint:CGPointMake(175, 200)];
translation.duration = 2;
translation.repeatCount = HUGE_VALF;
translation.autoreverses = YES;
// translation.fillMode = kCAFillModeForwards;
CABasicAnimation *rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
//kCAMediaTimingFunctionLinear 表示时间方法为线性,使得足球匀速转动
rotation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
rotation.toValue = [NSNumber numberWithFloat:4 * M_PI];
rotation.duration = 2;
rotation.repeatCount = HUGE_VALF;
rotation.autoreverses = YES;
[self.aniamtionView.layer addAnimation:rotation forKey:@"rotation"];
[self.aniamtionView.layer addAnimation:translation forKey:@"translation"];
}
//暂停layer上面的动画
- (void)pauseLayer:(CALayer*)layer
{
CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
layer.speed = 0.0;
layer.timeOffset = pausedTime;
}
//继续layer上面的动画
- (void)resumeLayer:(CALayer*)layer
{
CFTimeInterval pausedTime = [layer timeOffset];
layer.speed = 1.0;
layer.beginTime = 0.0;
CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime;
layer.beginTime = timeSincePause;
}