- (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];
}
CAAnimationGroup 组动画
最新推荐文章于 2024-10-12 10:40:42 发布