[TOC]
3.CAAnimationGroup
CAAnimationGroup:组合动画;允许多个动画同时播放;构建丰富的动画;
//组合动画
@interface CAAnimationGroup : CAAnimation
@property(nullable, copy) NSArray<CAAnimation *> *animations;
@end
应用
代码参见:“demo_XYAnim”。
//组合动画
- (void)test03 {
CASpringAnimation *anim01 = [CASpringAnimation animationWithKeyPath:@"position.x"];
anim01.mass = 5;
anim01.stiffness = 100;
anim01.damping = 1;
anim01.initialVelocity = 0;
anim01.duration = anim01.settlingDuration; //等于预估时间
anim01.fromValue = [NSValue valueWithCGPoint:self.imgv.layer.position];
anim01.fromValue = [NSValue valueWithCGPoint:CGPointMake(self.imgv.layer.position.x+100, self.imgv.layer.position.y)];
CABasicAnimation* anim02 = [CABasicAnimation animationWithKeyPath:@"transform"];
CATransform3D fromValue = self.imgv.layer.transform;
anim02.fromValue = [NSValue valueWithCATransform3D:fromValue];
CATransform3D pingyi = CATransform3DTranslate(fromValue, -100, -100, -100);
CATransform3D xuanzhuan = CATransform3DRotate(pingyi, M_PI, 0.5, 0.5, 0.5);
CATransform3D suofang = CATransform3DScale(xuanzhuan, -0.5, 0.5, 0.5);
anim02.toValue = [NSValue valueWithCATransform3D:suofang];
//组合
CAAnimationGroup *anim = [CAAnimationGroup animation];
anim.animations = @[anim01,anim02];
anim.duration = 10.0;
anim.removedOnCompletion = YES;
//添加动画
[self.imgv.layer addAnimation:anim forKey:nil];