美文网首页
iOS 中牛X的动画(一. CABasicAnimation篇)

iOS 中牛X的动画(一. CABasicAnimation篇)

作者: Lizzzzzzhen | 来源:发表于2016-07-22 17:55 被阅读408次

    Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程。

    Core Animation 组织结构如下:

    主要使用这四部分动画:

    • CABasicAnimation :基本动画(单一动画的实现)

    • CAKeyframeAnimation:关键帧动画(可以自定义行动路径)

    • CATranstion:转场动画(主要是提供一些渐变的动画效果)

    • CAAnimationGroup:组合动画(允许多个动画同时播放)

    使用步骤:

    1.添加 QuartzCore.framework

    2.引入头文件#import <QuartzCore/QuartzCore.h>

    1. CABasicAnimation

    通过设定起始点, 终点, 时间, 动画会沿着设定的点进行移动, 可看做是特殊的CAKeyframeAnimation

    说明这个动画对象要对CALayer的position属性执行动画

    //缩放 (transform.scale)
    //平移 (position)
    //旋转 (transform.rotation)

    设置动画效果为缩放:
    缩放效果可以分别对应X , Y , Z 轴进行设置
    transform.scale.x,
    transform.scale.y,
    transform.scale.z.

    旋转和缩放效果类似, 对应X , Y , Z 轴进行设置:
    transform.rotation.x,
    transform.rotation.y,
    transform.rotation.z.

    CABasicAnimation*basicAnima = [CABasicAnimationanimationWithKeyPath:@"transform.scale"];
    动画持续1.5s
    basicAnima.duration=1.5;

    放大
    basicAnima.fromValue=@1; basicAnima.toValue=@2;

    设置动画的代理
    basicAnima.delegate=self;

    自动返回
    basicAnima.autoreverses=YES;

    重复次数
    basicAnima.repeatCount=10;

    保持动画执行后的状态
    basicAnima.removedOnCompletion=NO; basicAnima.fillMode=kCAFillModeForwards;

    添加动画对象到图层上
    [view1.layer addAnimation:basicAnima forKey:@"translate"];

    代理方法

    动画开始时
    - (void)animationDidStart:(CAAnimation*)anim{ NSLog(@"动画开始了");}

    动画结束时
    - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag{ NSLog(@"动画结束了"); }

    今天小编就写到这里了, 如果发现我写的地方有问题, 希望能给我留言,我会及时进行修改, 大家一起进步, 剩下的三组动画, 最近也会做出更新, 希望能帮助到大家.

    相关文章

      网友评论

          本文标题:iOS 中牛X的动画(一. CABasicAnimation篇)

          本文链接:https://www.haomeiwen.com/subject/tmuijttx.html