CAAnimationGroup 组动画

来源:互联网 发布:淘宝售前客服话术对话 编辑:程序博客网 时间:2024/05/29 04:33
- (IBAction)pressCAAnimationGroup:(UIButton *)sender {        //创建动画    CATransition *transition = [CATransition animation];    transition.duration = 2;    //2.设置过渡样式    transition.type = kCATransitionReveal;//控制样式    transition.subtype = kCATransitionFromBottom;//控制方向        CAKeyframeAnimation *keyFrame = [CAKeyframeAnimation animationWithKeyPath:@"backgroundColor"];    keyFrame.duration = 8;    //    self.view.backgroundColor    keyFrame.values = @[(id)[UIColor redColor].CGColor,(id)[UIColor blackColor].CGColor,(id)[UIColor orangeColor].CGColor,(id)[UIColor greenColor].CGColor,(id)[UIColor grayColor].CGColor,(id)[UIColor blueColor].CGColor,(id)[UIColor yellowColor].CGColor];    //keyTimes 0 1/7 2/7 3/7 4/7 5/7 6/7 1(时间分配)    //keyTimes第一个值是0不能改变;最后一个为1同理;//    keyFrame.keyTimes = @[@(0.1),@(0.9),@(1.0),@(0.5),@(0.6),@(0.7),@(1.0)];//(手动时间分配)    CABasicAnimation *basic = [CABasicAnimation animationWithKeyPath:@"bounds"];    [basic setDuration:30];    basic.fromValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 150, 150)];    basic.toValue = [NSValue valueWithCGRect:CGRectMake(0, 0, 200, 200)];        //1.创建动画    CAAnimationGroup *group = [CAAnimationGroup animation];    //当组动画的时长 大于组中所有动画的最长的时间,动画的时间以组中最长的时间为准    //当组动画的时长 小于组中所有动画的最长的时间,动画的时间以group的时长为准    //最完美的时间是 组动画的时间和组中动画最长时间相等;    group.duration = 10;    //2.设置组动画    group.animations =@[transition,keyFrame,basic];    //3.添加动画    [self.changeView.layer addAnimation:group forKey:nil];}

0 0