您的位置:首页 > 其它

文章标题

2015-09-30 21:16 375 查看

分组动画

CAAnimationGroup:分组动画

分组动画的两个特有属性:

1、动画数组 animations

2、启动的时间 beginTime

注意:动画组 设置了动画的持续时间(duration)可能会导致 动画组里的动画持续时间不管用

初始化分组动画:

CAAnimationGroup *animationGroup = [CAAnimationGroup animation];

animationGroup.animations = @[[self rotation], [self dropAnimation]];

animationGroup.duration = 10;

//  beginTime  动画开始的时间
//  CACurrentMediaTime 获得当前的时间
//    从调用这个方法开始 5秒 之后 执行动画
animationGroup.beginTime = CACurrentMediaTime() + 5;
animationGroup.removedOnCompletion = NO;
animationGroup.fillMode = kCAFillModeBoth;

[layer addAnimation:animationGroup forKey:@"animationGroup"];


//选转动画
-(CABasicAnimation *)rotation{
CABasicAnimation *rotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
rotation.toValue = @(M_PI_2*3);
rotation.removedOnCompletion = NO;

return rotation;
}


//掉落
-(CAKeyframeAnimation *)dropAnimation{
CAKeyframeAnimation *drop =[ CAKeyframeAnimation animationWithKeyPath:@"position"];
CGMutablePathRef ref = CGPathCreateMutable();
CGPathMoveToPoint(ref, NULL, layer.position.x, layer.position.y);
//    CGPathAddCurveToPoint cp1x y cpx y 设置两个点 在这两个点之间画曲线
//    x y 终止点
CGPoint endPoint = CGPointMake(50, 600);

CGPathAddCurveToPoint(ref, NULL, 160, 280, -30, 300, endPoint.x, endPoint.y);

//    设置掉落的路径
drop.path = ref;
CGPathRelease(ref);

return drop;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: