了解 CAEmitterLayer

CAEmitterLayer

CAEmitterLayer是一個發(fā)射、設(shè)置動畫和渲染粒子系統(tǒng)的圖層。

emitterCells
API
@property(copy) NSArray<CAEmitterCell*> *emitterCells;
官方示例

演示了如何設(shè)置一個簡單的粒子發(fā)射器。它使用一個圖片當(dāng)單元內(nèi)容時,通過將發(fā)射器單元的發(fā)射范圍設(shè)置為2 * PI,粒子將向所有方向發(fā)射。

let emitterLayer = CAEmitterLayer()

emitterLayer.emitterPosition = CGPoint(x: 320, y: 320)

let cell = CAEmitterCell()
cell.birthRate = 100
cell.lifetime = 10
cell.velocity = 100
cell.scale = 0.1

cell.emissionRange = CGFloat.pi * 2.0
cell.contents = UIImage(named: "RadialGradient.png")!.cgImage

emitterLayer.emitterCells = [cell]

view.layer.addSublayer(emitterLayer)
emitterSize

發(fā)射源的尺寸大小,由CAEmitterCell實例定義的粒子繪制在圖層的尺寸內(nèi)。

API
@property CGSize emitterSize;
emitterShape

發(fā)射源的形狀,默認(rèn)是點的形狀,kCAEmitterLayerPoint.

API
@property(copy) CAEmitterLayerEmitterShape emitterShape;
常量值
  • kCAEmitterLayerCircle
  • kCAEmitterLayerCuboid
  • kCAEmitterLayerLine
  • kCAEmitterLayerPoint
  • kCAEmitterLayerRectangle
  • kCAEmitterLayerSphere
emitterMode

發(fā)射過程的模式,默認(rèn)是 kCAEmitterLayerVolume

API
@property(copy) CAEmitterLayerEmitterMode emitterMode;
枚舉值
  • kCAEmitterLayerOutline
  • kCAEmitterLayerPoints
  • kCAEmitterLayerSurface
  • kCAEmitterLayerVolume
emitterPosition

發(fā)射形狀的中心點,默認(rèn)是(0.0,0.0).

@property CGPoint emitterPosition;

CAEmitterCell

CAEmitterCell 類繼承與NSObject,是一個抽象類,似于UITableViewCell,每一種粒子效果都是一種單獨的CAEmitterCell。

  • name

    粒子名稱

  • birthRate

    粒子產(chǎn)生率

  • lifetime

    粒子生命周期

  • velocity

    粒子速度

  • velocityRange

    粒子速度平均量

  • yAcceleration

    y方向的加速度分量,默認(rèn)為0

  • emissionLongitude

    指定緯度,緯角度代表了在x-z軸平面坐標(biāo)系中與x軸之間的夾角,默認(rèn)0

  • emissionRange

    發(fā)射角度范圍,默認(rèn)為0,以錐形分布開的發(fā)射角度。角度用弧度制。粒子均勻分布在這個錐形范圍內(nèi)。

  • scale

    縮放比例,默認(rèn)是1

  • scaleRange

    縮放范圍,默認(rèn)是0

  • scaleSpeed

    在生命周期內(nèi)的縮放速度,默認(rèn)是0

  • contents

    粒子的內(nèi)容,參照CALayer的寄宿圖

  • color

    粒子的顏色

  • redRange

    粒子顏色red能改變的范圍,默認(rèn)是0

  • greenRange

    粒子顏色blue能改變的范圍,默認(rèn)是0

  • alphaRange

    粒子顏色alpha能改變的范圍,默認(rèn)是0

  • blueSpeed

    粒子顏色blue在生命周期內(nèi)的改變速度,默認(rèn)是0

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容