CAEmitterLayer
CAEmitterLayer是一個發(fā)射、設(shè)置動畫和渲染粒子系統(tǒng)的圖層。
emitterCells
API
@property(copy) NSArray<CAEmitterCell*> *emitterCells;
官方示例
演示了如何設(shè)置一個簡單的粒子發(fā)射器。它使用一個圖片當(dāng)單元內(nèi)容時,通過將發(fā)射器單元的發(fā)射范圍設(shè)置為,粒子將向所有方向發(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;
常量值
kCAEmitterLayerCirclekCAEmitterLayerCuboidkCAEmitterLayerLinekCAEmitterLayerPointkCAEmitterLayerRectanglekCAEmitterLayerSphere
emitterMode
發(fā)射過程的模式,默認(rèn)是 kCAEmitterLayerVolume
API
@property(copy) CAEmitterLayerEmitterMode emitterMode;
枚舉值
kCAEmitterLayerOutlinekCAEmitterLayerPointskCAEmitterLayerSurfacekCAEmitterLayerVolume
emitterPosition
發(fā)射形狀的中心點,默認(rèn)是(0.0,0.0).
@property CGPoint emitterPosition;
CAEmitterCell
CAEmitterCell 類繼承與NSObject,是一個抽象類,似于UITableViewCell,每一種粒子效果都是一種單獨的CAEmitterCell。
-
name粒子名稱
-
birthRate粒子產(chǎn)生率
-
lifetime粒子生命周期
-
velocity粒子速度
-
velocityRange粒子速度平均量
-
yAccelerationy方向的加速度分量,默認(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