动画组顾名思义就是将多个不同的动画效果组合起来同时作用于一个层上
代码演示:
1 // 创建基本路径 2 CGMutablePathRef path = CGPathCreateMutable(); 3 4 // 设置路径的起点 5 CGPathMoveToPoint(path, NULL, 50.0, 120.0); 6 7 //添加4条曲线路径到path中 8 CGPathAddCurveToPoint(path, NULL, 50.0, 275.0, 150.0, 275.0, 150.0, 120.0); 9 CGPathAddCurveToPoint(path,NULL,150.0,275.0,250.0,275.0,250.0,120.0); 10 CGPathAddCurveToPoint(path,NULL,250.0,275.0,350.0,275.0,350.0,120.0); 11 CGPathAddCurveToPoint(path,NULL,350.0,275.0,450.0,275.0,450.0,120.0); 12 13 //使用关键字"position"创建关键帧动画 14 CAKeyframeAnimation * posAnim = [CAKeyframeAnimation animationWithKeyPath:@"position"]; 15 16 posAnim.path = movePath.CGPath; 17 18 //缩放动画 19 CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"]; 20 21 scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity]; 22 23 scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)]; 24 25 //透明动画 26 CABasicAnimation *opacityAnim = [CABasicAnimation animationWithKeyPath:@"alpha"]; 27 28 opacityAnim.fromValue = [NSNumber numberWithFloat:1.0]; 29 30 opacityAnim.toValue = [NSNumber numberWithFloat:0.1]; 31 32 //动画组 33 CAAnimationGroup *animGroup = [CAAnimationGroup animation]; 34 35 animGroup.animations = [NSArray arrayWithObjects:posAnim, scaleAnim, opacityAnim, nil]; 36 37 animGroup.duration = 1; 38 39 // 动画完成后保持最新状态 40 animGroup.removedOnCompletion = NO; 41 animGroup.fillMode = kCAFillModeForwards; 42 43 [_myView.layer addAnimation:animGroup forKey:nil];