[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];

results matching ""

    No results matching ""