CAAnimation动画小结

41 篇文章 0 订阅

CAAnimation动画:

    所有动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,应该使用它具体的子类.

属性解析:

    duration:动画的持续时间 .

    repeatCount:动画的重复次数 .

    repeatDuration:动画的重复时间 .

    removedOnCompletion默认为YES,代表动画执行完毕后就从图层上移除,图形会恢复到动画执行前的状态。如果想让图层保持显示动画执行后的状态,那就设置为NO,不过还要设置fillMode为kCAFillModeForwards .

    fillMode:决定当前对象在非active时间段的行为.比如动画开始之前,动画结束之后 .

    beginTime:可以用来设置动画延迟执行时间,若想延迟2s,就设置为CACurrentMediaTime()+2,                            CACurrentMediaTime()为图层的当前时间 .

    timingFunction:速度控制函数,控制动画运行的节奏 .

    delegate:动画代理  

 速度控制函数(CAMediaTimingFunction)

    1。 kCAMediaTimingFunctionLinear(线性):匀速,给你一个相对静态的感觉

    2。 kCAMediaTimingFunctionEaseIn(渐进):动画缓慢进入,然后加速离开

    3。 kCAMediaTimingFunctionEaseOut(渐出):动画全速进入,然后减速的到达目的地

    4。 kCAMediaTimingFunctionEaseInEaseOut(渐进渐出):动画缓慢的进入,中间加速,然后减速的到达目的地。        这个是默认的动画行为。

CAAnimation在分类中定义了代理方法

    @interface NSObject <CAAnimationDelegate>

    - (void)animationDidStart:(CAAnimation *)anim;

    - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;

    @end

fillMode属性值(要想fillMode有效,最好设置removedOnCompletion=NO)

    kCAFillModeRemoved 这个是默认值,也就是说当动画开始前和动画结束后,动画对layer都没有影响,动画结束后,layer会恢复到之前的状态
.

    kCAFillModeForwards 当动画结束后,layer会一直保持着动画最后的状态.

    
kCAFillModeBackwards 在动画开始前,你只要将动画加入了一个layer,layer便立即进入动画的初始状态并等待动画开始. 你可以这样设定测试代码,将一个动画加入一个layer的时候延迟5秒执行.然后就会发现在动画没有开始的时候,只要动画被加入了layer,layer便处于动画初始状态 


    kCAFillModeBoth 这个其实就是上面两个的合成.动画加入后开始之前,layer便处于动画初始状态,动画结束后layer保持动画最后的状





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值