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

 

 

  

posted @ 2012-08-18 04:04  sayALittle  阅读(2958)  评论(0编辑  收藏  举报
点击这里给我发消息