IOS 5.1 使用自带的CAEmitterLayer的酷炫效果
做一个UIView的子类
1.设一个私有instance variable关于CAEmitterLayer的。这里如:caeEmitter
2.打开awakeFromNib功能,把caeEmitter设为该UIView CALayer的默认Layer。
具体可以这么写 caeEmitter = (CAEmitterLayer *)self.layer
同时也要在.m文件中写一个返回类类型的方法,不然使用者(viewController)还是会认为这只是CALayer
+ (class)layerClass
{
return [CAEmitter Class];
}
3.然后可以设caeEmitter的默认大小以及在屏幕中的位置
4.最重要的一步到来了,那就是CAEmitterCell。创建一个CAEmitterCell的子类,可以这么创建
CAEmitterCell *effectCell = [CAEmitterCell emitterCell];
effectCell 有几个重要属性这里务必要介绍一下,
1.birthRate 顾名思义没有这个也就没有effectCell,这个必须要设置,具体含义是每秒某个点产生的effectCell数量
2.lifetime & lifetimeRange 表示effectCell的生命周期,既在屏幕上的显示时间要多长。
3.contents 这个和CALayer一样,只是用来设置图片
4.name 这个是当effectCell存在caeEmitter 的emitterCells 中用来辨认的。用到setValue forKeyPath比较有用
5.velocity & velocityRange & emissionRange 表示cell向屏幕右边飞行的速度 & 在右边什么范围内飞行 & +- 角度扩散
5.把cell做成array放进caeEmitter.emitterCells里去。caeEmitter.renderMode有个效果很不错,能变成火的就是kCAEmitterLayerAdditive