1.CoreAnimation 特殊圖層

圖層
2.CAEmitterLayer->CALayer
- CAEmitterLayer 使用類似于 tableView
// 1. 設置CAEmitterLayer
CAEmitterLayer * rainLayer = [CAEmitterLayer layer];
[self.view.layer addSublayer:rainLayer];
//2.發(fā)射形狀--線性
rainLayer.emitterShape = kCAEmitterLayerLine;
//發(fā)射模式
rainLayer.emitterMode = kCAEmitterLayerSurface;
//發(fā)射源大小
rainLayer.emitterSize = self.view.frame.size;
//發(fā)射源位置 y最好不要設置為0 最好<0
rainLayer.emitterPosition = CGPointMake(self.view.bounds.size.width * 0.5, -10);
// 3. 配置cell
CAEmitterCell * snowCell = [CAEmitterCell emitterCell];
//粒子內(nèi)容
snowCell.contents = (id)[[UIImage imageNamed:@"rain_white"] CGImage];
//每秒產(chǎn)生的粒子數(shù)量的系數(shù)
snowCell.birthRate = 25.f;
//粒子的生命周期
snowCell.lifetime = 20.f;
//speed粒子速度.圖層的速率。用于將父時間縮放為本地時間,例如,如果速率是2,則本地時間的進度是父時間的兩倍。默認值為1。
snowCell.speed = 10.f;
//粒子速度系數(shù), 默認1.0
snowCell.velocity = 10.f;
//每個發(fā)射物體的初始平均范圍,默認等于0
snowCell.velocityRange = 10.f;
//粒子在y方向的加速的
snowCell.yAcceleration = 1000.f;
//粒子縮放比例: scale
snowCell.scale = 0.1;
//粒子縮放比例范圍:scaleRange
snowCell.scaleRange = 0.f;
// 3.添加到圖層上
rainLayer.emitterCells = @[snowCell];
// 開始動畫
[rainLayer setValue:@1.f forKeyPath:@"birthRate"];