效果:
caemitterlayer是calayer的乙個子類,和caemittercell一起使用可以創造出多樣的動畫效果。
caemitterlayer的屬性:
/*@inte***ce caemitterlayer : calayer
--粒子的陣列 把設定好的粒子放入陣列設定到layer上
@property(nullable, copy) nsarray> emittercells;
--layer生產率 與cell的birthrate相乘就是粒子的生產率
@property float birthrate;
--layer存在時間 同上
@property float lifetime;
--發射源中心點的位置
@property cgpoint emitterposition;
--z軸上的位置
@property cgfloat emitterzposition;
--是發射源的大小 並不是layer的大小
@property cgsize emittersize;
--不清楚是什麼效果
@property cgfloat emitterdepth;
--發射源的形狀 有圓形 方形 線型等
@property(copy) nsstring *emittershape;
--發散形式 「layerpoints」是指發射粒子的位置在發射源的關鍵點上
如方形發射源的四個角點 圓形發射源的中心點
「outline」就是指例子發射的位置位於發射源的邊框
「su***ce」即是表面 「volume」暫時不清楚
@property(copy) nsstring *emittermode;
--描繪模式 「unordered」不規律的 增加了立體感
「oldestfirst」先生成的在上 「oldestlast」反之
「backtofront」根據z軸上的位置進行描繪 「additive」發射源的多種粒子進行混合
@property(copy) nsstring *rendermode;
--是否展示在z軸上的效果 把圖層進行3d變形如沿y軸旋轉90度 會有很明顯的立體效果
@property bool preservesdepth;
--發射速度 和cell的速度屬性一起決定了粒子的速度 猜測粒子的速度是兩者的乘積
而且和cell的速度屬性不同 這個屬性可以為負
為負的時候發散方向是向反方向的 為正時是向指定方向的
@property float velocity;
-- 縮放大小 和速度相同 粒子的scale值是兩者相乘 也可以為負 為負時效果不清楚
@property float scale;
-- 同上面的兩個屬性
@property float spin;
-- 可能是給圖層中需要用到的隨機數設定種子
@property unsigned int seed;*/
caemittercell的部分屬性
/*--是否允許被繪製出來
@property(getter=isenabled) bool enabled;
--生成速率
@property float birthrate;
--生存週期
@property float lifetime;
--生存週期的絕對值的偏移量的最大值 。。。
@property float lifetimerange;
--z軸方向上的發射角度
@property cgfloat emissionlatitude;
--在xy平面上的發射角度
@property cgfloat emissionlongitude;
--放射角度的偏移量
@property cgfloat emissionrange;
--放射速度
@property cgfloat velocity;
--速度偏移量
@property cgfloat velocityrange;
--在三個座標軸上的速度增量 可以做出類似重力 風吹的效果
@property cgfloat xacceleration;
@property cgfloat yacceleration;
@property cgfloat zacceleration;
--縮放數值
@property cgfloat scale;
--縮放數值的偏移量
@property cgfloat scalerange;
--縮放速度 不清楚怎麼設定 可能和velocity屬性有關係
@property cgfloat scalespeed;
--旋轉
@property cgfloat spin;
--旋轉的偏移量
@property cgfloat spinrange;
--設定cell的顏色 content的顏色會影響實際顏色
@property(nullable) cgcolorref color;
--設定三原色和透明度的值 偏移值 0-1
@property float redrange;
@property float greenrange;
@property float bluerange;
@property float alpharange;
--變色速率
@property float redspeed;
@property float greenspeed;
@property float bluespeed;
@property float alphaspeed;
--cell的內容 一般是uiimage
@property(nullable, strong) id contents;
--內容範圍
@property cgrect contentsrect;
--內容縮放
@property cgfloat contentsscale;
*/caemitterlayer和caemittercell有眾多屬性,所以就有更多的搭配,從而實現多種多樣的動畫效果。
烟花效果只是其中一種:
烟花的兩個:
烟花效果,效果實現**如下 :
你也可以根據自己的實際開發需要進行引數的調整
CAEmitterLayer 粒子效果
caemitterlayer執行在gpu上,不消耗cpu。建立出layer caemitterlayer emitterlayer caemitterlayer layer 顯示邊框 emitterlayer.borderwidth 1.f emitterlayer.bordercolor uico...
CAEmitterLayer屬性介紹
在ios 5中,蘋果引入了乙個新的calayer子類叫做caemitterlayer。caemitterlayer是乙個高效能的粒子引擎,被用來建立實時例子動畫如 煙霧,火,雨等等這些效果.caemitterlayer 粒子發射器 屬性 emitterposition 發射位置 cgpoint em...
CAEmitterLayer實現粒子效果
caemitterlayer實現粒子效果 caemitterlayer 在ios 5中,蘋果引入了乙個新的 calayer 子類叫做 caemitterlayer caemitterlayer 是乙個高效能的粒子引擎,被用來建立實時例子動畫如 煙霧,火,雨等等這些效果。caemitterlayer ...