Core Animation 核心动画

pchotfan 8年前
   <p>Core Animation翻译为核心动画,它是一组非常强大的动画处理的API,使用它能出很多好看的效果,代码量也比较少,它可以使用在Mac OS X和iOS平台并且在执行过程都是在后台操作的,不会阻塞主线程, <strong>要注意的是</strong> ,Core Animation是直接作用在CALayer上的,并非UIView。</p>    <p>下图是核心动画的集成结构 <strong>红色代表遵守的协议</strong> <em> <strong>紫色代表继承哪一个类</strong> </em></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/7aff2a462856cb8002b96586631723ab.png"></p>    <p>CAAnimation是所有动画类的父类,但是它不能直接使用,应该使用它的子类</p>    <p><strong>常见属性有</strong> :</p>    <p>1> duration:动画的持续时间</p>    <p>2> repeatCount:动画的重复次数</p>    <p>3> timingFunction:控制动画运行的节奏</p>    <p>timingFunction可选的值有:</p>    <p>kCAMediaTimingFunctionLinear(线性):匀速,给你一个相对静态的感觉</p>    <p>kCAMediaTimingFunctionEaseIn(渐进):动画缓慢进入,然后加速离开</p>    <p>kCAMediaTimingFunctionEaseOut(渐出):动画全速进入,然后减速的到达目的地</p>    <p>kCAMediaTimingFunctionEaseInEaseOut(渐进渐出):动画缓慢的进入,中间加速,然后减速的到达目的地。这个是默认的动画行为。</p>    <p>4> delegate:动画代理,用来监听动画的执行过程</p>    <p>上面介绍的所有属性都是属于CAAnimation的,所以CAAnimation的所有子类都能使用它们。</p>    <p><strong>关于CAPropertyAnimation</strong></p>    <p>CAPropertyAnimation是CAAnimation的子类,ye不能直接使用,要想创建动画对象,应该使用它的两个子类:CABasicAnimation和CAKeyframeAnimation</p>    <p>它有个NSString类型的keyPath属性,你可以指定CALayer的某个属性名为keyPath,并且对CALayer的这个属性的值进行修改,达到相应的动画效果。比如,指定@"position"为keyPath,就会修改CALayer的position属性的值,以达到平移的动画效果</p>    <p>因此,初始化好CAPropertyAnimation的子类对象后,必须先设置keyPath,搞清楚要修改的是CALayer的哪个属性,执行的是怎样的动画</p>    <p> </p>    <p> </p>    <p>来自:http://www.jianshu.com/p/d4d809fa38d2</p>    <p> </p>