CAEmitterLayer
CAEmitterLayer
是一個(gè)發(fā)射、設(shè)置動(dòng)畫和渲染粒子系統(tǒng)的圖層翎碑。
emitterCells
API
@property(copy) NSArray<CAEmitterCell*> *emitterCells;
官方示例
演示了如何設(shè)置一個(gè)簡(jiǎn)單的粒子發(fā)射器槽唾。它使用一個(gè)圖片當(dāng)單元內(nèi)容時(shí)丧枪,通過(guò)將發(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
實(shí)例定義的粒子繪制在圖層的尺寸內(nèi)。
API
@property CGSize emitterSize;
emitterShape
發(fā)射源的形狀钝计,默認(rèn)是點(diǎn)的形狀屎篱,kCAEmitterLayerPoint
.
API
@property(copy) CAEmitterLayerEmitterShape emitterShape;
常量值
kCAEmitterLayerCircle
kCAEmitterLayerCuboid
kCAEmitterLayerLine
kCAEmitterLayerPoint
kCAEmitterLayerRectangle
kCAEmitterLayerSphere
emitterMode
發(fā)射過(guò)程的模式服赎,默認(rèn)是 kCAEmitterLayerVolume
API
@property(copy) CAEmitterLayerEmitterMode emitterMode;
枚舉值
kCAEmitterLayerOutline
kCAEmitterLayerPoints
kCAEmitterLayerSurface
kCAEmitterLayerVolume
emitterPosition
發(fā)射形狀的中心點(diǎn),默認(rèn)是(0.0,0.0)
.
@property CGPoint emitterPosition;
CAEmitterCell
CAEmitterCell
類繼承與NSObject
交播,是一個(gè)抽象類重虑,似于UITableViewCell
,每一種粒子效果都是一種單獨(dú)的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ā)射角度。角度用弧度制曹傀。粒子均勻分布在這個(gè)錐形范圍內(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