美文网首页
iOS核心动画运用思路

iOS核心动画运用思路

作者: 大神风格化X | 来源:发表于2018-07-31 16:21 被阅读13次

    iOS应用中用到核心动画的场景还是蛮常见的,上次我聊过UIView动画的运用注意事项。这一次该聊聊核心动画了。哈哈

    首先谈两者的区别,这两者最大的区别就是在于UIview动画是作用于view层的,而核心动画是作用于layer层,view层上的动画是真动画,因为frame发生实质性改变(位置是真的改变)。而核心动画是假动画,他的frame没发生实质性改变,改变的是layer层面上的动画效果。核心动画运用场景很多,因为它能实现位移效果、旋转效果、放大缩小效果等。。

    那么如果在写的时候,能把每一步都写好呢?

    那么现在我给大家聊聊写核心的动画一个主导思路吧。。

    1.首先,我们要调用系统里面包含核心动画那块的库-就是“transform.translation”这个库

    #import <QuartzCore/QuartzCore.h>

    2.指定layer对应要实现的属性键值作为动画注册依据

    例如:

    CABasicAnimation*animation =

    [CABasicAnimationanimationWithKeyPath:@"position"];

    animation.delegate = self;//如果有需要实现动画代理方法,可以写

    3.设置一些必要或需要的属性

    例如:

    animation.duration =2.5;// 动画持续时间

    animation.repeatCount =1;// 不重复

    animation.beginTime =CACurrentMediaTime() +2;// 2秒后执行

    animation.autoreverses =YES;// 结束后执行逆动画

    animation.fromValue = [NSValuevalueWithCGPoint:CGPointMake(0,0)];// 起始点

    animation.toValue = [NSValuevalueWithCGPoint:CGPointMake(320,480)];// 终了点

    4.将动画添加到layer层,并且自定义一个键值名来保存设置

    例如:

    [View.layer addAnimation:animation forKey:@"move-layer"];

    5.可以在代理方法中写一些操作

    - (void)animationDidStart:(CAAnimation *)theAnimation{

    NSLog(@"动画启动");

    }

    - (void)animationDidStop:(CAAnimation*)theAnimation finished:(BOOL)flag{

    NSLog(@"动画停止了");

    }

    相关文章

      网友评论

          本文标题:iOS核心动画运用思路

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