//1.沿路径移动的动画
CAKeyframeAnimation *movieAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
movieAnimation.duration = 3;
movieAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
//定义一条线条路径,不是绘制
CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 0, 0);
CGPathAddQuadCurveToPoint(path, NULL, 160, 300,320, 0);
movieAnimation.path = path;
[_subView.layer addAnimation:movieAnimation forKey:NULL];
//2.旋转动画
CAKeyframeAnimation *rotationAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"];
rotationAnimation.duration = 2;
rotationAnimation.values = @[
[NSNumber numberWithFloat:0],
[NSNumber numberWithFloat:M_PI/4],
[NSNumber numberWithFloat:M_PI],
];
rotationAnimation.keyTimes = @[
@0,
@0.1,
@0.9
];
[_subView.layer addAnimation:rotationAnimation forKey:NULL];
//3.放大动画
CAKeyframeAnimation *transformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
transformAnimation.duration = 2;
CATransform3D transform0 = CATransform3DMakeScale(1, 1, 1);
CATransform3D transform1 = CATransform3DMakeScale(2, 2, 2);
CATransform3D transform2 = CATransform3DMakeScale(3, 3, 3);
NSValue *v0 = [NSValue valueWithCATransform3D:transform0];
NSValue *v1 = [NSValue valueWithCATransform3D:transform1];
NSValue *v2 = [NSValue valueWithCATransform3D:transform2];
transformAnimation.values = @[
v0,v1,v2
];
transformAnimation.keyTimes = @[@0,@0.5,@1.5];
[_subView.layer addAnimation:transformAnimation forKey:NULL];
//4.CABasicAnimation 类的使用
CABasicAnimation *basicAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
basicAnimation.duration = 2;
basicAnimation.fromValue = @0;
basicAnimation.toValue = @1;
[_subView.layer addAnimation:basicAnimation forKey:NULL];
//5.动画组对象
CAAnimationGroup *animationGroup = [CAAnimationGroup animation];
animationGroup.animations = @[movieAnimation,basicAnimation];
animationGroup.duration = 3;
//重复的次数
animationGroup.repeatCount = 1000;
[_subView.layer addAnimation:animationGroup forKey:NULL];