姬長信(Redy)

CAEmitterLayer 粒子动画

最近有点时间,研究了一下CAEmitterLayer粒子动画效果,分享出来,以备自己以后使用,先看一下基本的效果吧:

首先,说一下CALayer 经常使用到的一些类

然后说一下管理CALayer内容的几个函数

addSublayer:  添加子图层
removeFromSuperlayer将自己从父图层中移除
insertSublayer:atIndex:在自己子图层数组中的第idx位置添加图层
insertSublayer:above: 将图层layer添加在子图层的上面
insertSublayer:below: 将图层layer添加在子图层的下面
replaceSublayer:with: 将图层layer替换另一个layer

CALayer的动画操作

addAnimation:forKey: 增加某一属性的动画
animationForKey:获取某一属性的动画
removeAllAnimations移除所有动画
removeAnimationForKey:移除某一属性的动画
animationKeys获取所有的属性动画

CALayer就介绍到这里,想要了解更多的,请点我

今天主要介绍一下CAEmitterLayer
CAEmitterLayerCALayer的一个子类,CAEmitterLayer是用于实现基于Core Animation的粒子发生器系统,可以用来做一些酷炫的效果,比如我的demo里面的都是用CAEmitterLayer做的一些效果。

说道CAEmitterLayer,我们不得不提到的就是CAEmitterCell , 刚才我们说CAEmitterLayer是粒子发生器系统,那么CAEmitterCell就是我们具体发射的粒子了;粒子动画原理其实挺简单的,就是我们需要了解他的一些属性,做出一些效果来,比如红包雨这个动画,代码如下: