- (void)groupAnimation {
//基础属性动画
//keyPath:属性键路径,通过路径的形式访问对象的指定属性
//1.平移
CABasicAnimation *positionAnimation = [CABasicAnimation animationWithKeyPath:@"position"];
positionAnimation.duration = 0.5;
// 在哪个时间间隔开始
positionAnimation.beginTime = 0.0;
positionAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
//配置起始位置(fromeVaue)和终止位置(toValue)
positionAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(160, 284)];
positionAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(160, 50)];
//2.翻转
CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rotationAnimation.duration = 0.5;
// 在哪个时间间隔开始
rotationAnimation.beginTime = 0.5;
rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
//配置起始位置(fromeVaue)和终止位置(toValue)
rotationAnimation.fromValue = @(0);
rotationAnimation.toValue = @(M_PI);// M_PI *2 360'
//3.透明度
CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
opacityAnimation.duration = 0.5;
// 在哪个时间间隔开始
opacityAnimation.beginTime = 1.0;
opacityAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
//配置起始位置(fromeVaue)和终止位置(toValue)
opacityAnimation.fromValue = @(1.0);
opacityAnimation.toValue = @(0.5);
//初始化动画组
CAAnimationGroup *groupAnimation = [CAAnimationGroup animation];
groupAnimation.duration = 1.5;
groupAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
groupAnimation.animations = @[positionAnimation,rotationAnimation,opacityAnimation];
// groupAnimation.delegate = self;
groupAnimation.removedOnCompletion = NO;
groupAnimation.fillMode =kCAFillModeForwards;
[self.view.layer addAnimation:groupAnimation forKey:@"group"];
}
补充:需要导入头文件
#import <QuartzCore/QuartzCore.h>