CAAnimationGroup的简单使用

来源:互联网 发布:c语言大于号怎么打 编辑:程序博客网 时间:2024/06/05 02:45


#import "ViewController.h"


@interface ViewController ()

/**

 *  要动画的view

 */

@property (nonatomic,weak)UIImageView * animateImageView;

@end


@implementation ViewController


- (void)viewDidLoad {

  [superviewDidLoad];

  

  /**

   

   首先CAAnimationGroup也是继承自CAAnimationCAAnimationGroup你可以看到,他自己就一个属性

   @property(nullable, copy) NSArray<CAAnimation *> *animations;

   这个属性是数组,元素只能是CAAnimation类或者其子类,

   组动画是很简单的动画,他只是把其他的动画组合起来。

   我们先创建一个view来展示动画

   

   */

  

  UIImageView * imageView = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"haveReportStatus"]];

  CGFloat imageWH = 33;

  imageView.frame = CGRectMake(100, 100, imageWH, imageWH);

  imageView.alpha = 0.0;

  _animateImageView = imageView;

  [self.viewaddSubview:imageView];

  

}


-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

  

  //动画

  

  //位移动画

  CABasicAnimation *anim1 = [CABasicAnimationanimation];

  anim1.keyPath =@"position.x";

  anim1.fromValue = @(CGRectGetMidX(self.animateImageView.frame)+200);

  anim1.toValue   = @(CGRectGetMidX(self.animateImageView.frame));

  

  //透明度

  CABasicAnimation *anim2 = [CABasicAnimationanimation];

  anim2.keyPath = @"opacity";

  anim2.fromValue = @(0);

  anim2.toValue = @(1);

  

  //旋转

  CAKeyframeAnimation *anim3 = [CAKeyframeAnimationanimation];

  anim3.keyPath =@"transform.rotation.z";

  anim3.values = @[@(0),@(M_PI_2*4)];

  

  //缩放

  CABasicAnimation * anim4 = [CABasicAnimationanimation];

  anim4.keyPath =@"transform.scale";

  anim4.fromValue = @(0.3);

  anim4.toValue = @(1);

  

  //组动画

  //这个方法是调用CAAnimation的方法来创建组动画的

  CAAnimationGroup *groupAnim = [CAAnimationGroupanimation];

  

  //组动画的数组,把这些动画放到一个数组里面,这些动画可以是基础动画,可以是帧动画,

  groupAnim.animations = @[anim1,anim2,anim3,anim4];

  

  groupAnim.duration = 3;

  groupAnim.removedOnCompletion =NO;

  [self.animateImageView.layeraddAnimation:groupAnim forKey:nil];

  

  self.animateImageView.alpha =1;

  

}


@end


0 0
原创粉丝点击