最近的项目涉及到动画的连接, 需求是 1-25秒 的一个横向位移动画 在23-25s 的时候隐身,需要完美衔接! 由于本人很菜所以只想到 定时器 延时方法 但是 都不完美 , 然后搜索资料的时候发现了 CAAnimationGroup.
CAAnimationGroup 可以 把 各个 动画 衔接在一起
CABasicAnimation*opacityAnimation1 = [CABasicAnimationanimationWithKeyPath:@"opacity"];
opacityAnimation1.fromValue= [NSNumbernumberWithFloat:0.0];
opacityAnimation1.toValue= [NSNumbernumberWithFloat:1.0];
//注意setBeginTime在第几秒开始动画duration持续多久
[opacityAnimation1setBeginTime:0];
opacityAnimation1.duration=1;
CABasicAnimation*animation=[CABasicAnimationanimationWithKeyPath:@"transform.translation.x"];
animation.toValue=[NSValuevalueWithCGRect:CGRectMake(width1 -self.view.frame.size.width,0, width1, height)];
[animationsetBeginTime:0];
animation.duration=25;
animation.removedOnCompletion=NO;
animation.fillMode=kCAFillModeForwards;
CABasicAnimation*opacityAnimation = [CABasicAnimationanimationWithKeyPath:@"opacity"];
opacityAnimation.fromValue= [NSNumbernumberWithFloat:1.0];
opacityAnimation.toValue= [NSNumbernumberWithFloat:0.0];
[opacityAnimationsetBeginTime:24];
opacityAnimation.duration=1;
CAAnimationGroup*group = [CAAnimationGroupanimation];
group.duration=25;
group.animations=@[opacityAnimation1,animation,opacityAnimation];
group.removedOnCompletion=NO;
group.repeatCount=100000;
[yun_1.layeraddAnimation:groupforKey:@"group"];
网友评论