九 iOS 之CAAnimationGroup(动画组)

来源:互联网 发布:亿维雅 知乎 编辑:程序博客网 时间:2024/05/14 11:35

CAAnimationGroup

动画组,是CAAnimation的子类,可以保存一组动画对象,将CAAnimationGroup对象加入层后,组中所有动画对象可以同时并发运行

属性说明:

  • animations:用来保存一组动画对象的NSArray
  • 默认情况下,一组动画对象是同时运行的,也可以通过设置动画对象的beginTime属性来更改动画的开始时间

示例演示

点击屏幕同时平移、缩放、旋转
这里写图片描述

  • 核心代码 ViewController.m
#import "ViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIView *redView;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view, typically from a nib.}- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{    //同时缩放,平移,旋转    CAAnimationGroup * group = [CAAnimationGroup animation];    CABasicAnimation * rotation = [CABasicAnimation animation];    rotation.keyPath = @"transform.rotation";    rotation.toValue = @(arc4random_uniform(M_PI));    CABasicAnimation * scale = [CABasicAnimation animation];    scale.keyPath = @"transform.scale";    scale.toValue =@ 0.5;    CABasicAnimation * position = [CABasicAnimation animation];    position.keyPath =  @"position";    position.toValue = [NSValue valueWithCGPoint:CGPointMake(arc4random_uniform(200), arc4random_uniform(200))];    group.animations = @[rotation,scale,position];    //取消动画反弹    group.removedOnCompletion = NO;    //设置动画执行完成后保持最新的效果    group.fillMode = kCAFillModeForwards;    [_redView.layer addAnimation:group forKey:nil];}@end
原创粉丝点击