动画CATransition、CABasicAnimation

在framework中引入QuatrtzCore.framework,在头文件中需要

#import <QuartzCore/QuartzCore.h>


CATransition *animation =[[CATransitionanimation alloc]init];

//是否代理

//animation.delegate = self;

//动画时间 double类型

[animation setDuration:duration];

//动画结束方式

[animation setFillMode:model];


/*动画类型

 kCATransitionFade;

 kCATransitionMoveIn;

 kCATransitionPush;

 kCATransitionReveal;

 */

[animation setType:type];

/*动画进入方式

 kCATransitionFromRight;

 kCATransitionFromLeft;

 kCATransitionFromTop;

 kCATransitionFromBottom;

 */

[animation setSubtype:subtype];

/*动画时间控制

 UIViewAnimationCurveEaseInOut,         // slow at beginning and end

 UIViewAnimationCurveEaseIn,            // slow at beginning

 UIViewAnimationCurveEaseOut,           // slow at end

 UIViewAnimationCurveLinear


  */
 animation.timingFunction =  UIViewAnimationCurveEaseInOut;



//是否在当前层完成动画

[animation setRemovedOnCompletion:completion];

//动画事件

//[view addAnimation:animation forKey:key];
//其中 animationView:(id)view 是根据传入的对应的属性去创建动画如:
[self.window.layer addAnimation:animation forKey:key];


  //贝塞尔曲线路径
    UIBezierPath *movePath = [UIBezierPath bezierPath];
     [movePath moveToPoint:CGPointMake(10.0, 10.0)];
     [movePath addQuadCurveToPoint:CGPointMake(100, 300) controlPoint:CGPointMake(300, 100)];

 //以下必须导入QuartzCore包
 //关键帧动画(位置)
    CAKeyframeAnimation * posAnim = [CAKeyframeAnimation animationWithKeyPath:@"position"];
    posAnim.path = movePath.CGPath;
     posAnim.removedOnCompletion = YES;

     //缩放动画
     CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform"];
     scaleAnim.fromValue = [NSValue valueWithCATransform3D:CATransform3DIdentity];
    scaleAnim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)];
    scaleAnim.removedOnCompletion = YES;

     //透明动画
     CABasicAnimation *opacityAnim = [CABasicAnimation animationWithKeyPath:@"alpha"];
     opacityAnim.fromValue = [NSNumber numberWithFloat:1.0];
     opacityAnim.toValue = [NSNumber numberWithFloat:0.1];
     opacityAnim.removedOnCompletion = YES;
     //动画组
    CAAnimationGroup *animGroup = [CAAnimationGroup animation];
    animGroup.animations = [NSArray arrayWithObjects:posAnim, scaleAnim, opacityAnim, nil];
    animGroup.duration = 1;

    [imgView.layer addAnimation:animGroup forKey:nil];

//移动
CABasicAnimation *animation =
[CABasicAnimation animationWithKeyPath:@”position”]; 
[animation setFromValue:[NSValue valueWithPoint:startPoint]]; 
[animation setToValue:[NSValue valueWithPoint:endPoint]];
 [animation setDuration:5.0];
[layer setPosition:endpoint];
[layer addAnimation:animation forKey:nil];
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值