最近打開QQ的空間會(huì)有燈籠掉落下來丧鸯,操作背后的控件不受影響帚称,自己想實(shí)現(xiàn)這樣一個(gè)類似的功能,查閱了一下資料蓬痒,有一個(gè)CAEmitterLayer的東東泻骤。
以下是CAEmitterLayer的主要屬性
contents = (__bridge id)[UIImage imageNamed:@"snow.jpg"].CGImage;
birthRate = 100;//表示粒子的生產(chǎn)速度,值越大梧奢,生產(chǎn)的速度越大
lifetime = 10.0 ;//表示粒子的生命周期狱掂,在該范圍內(nèi),粒子不會(huì)消失
alphaSpeed = 0;//粒子透明度的變化速度亲轨,為負(fù)值時(shí)說明透明度慢慢變低
velocity = 150;//表示粒子的位移加速度
velocityRange = 100;//表示粒子的位移加速范圍 與上一個(gè)參數(shù)配合使用
emissionLongitude = M_PI/2;//粒子發(fā)射中心方向
emissionRange = M_PI/2;//粒子發(fā)射范圍
scale = 0.25;//大小
以下是主要代碼
CAEmitterLayer *emitter = [CAEmitterLayer layer];
emitter.frame = self.view.bounds;
[self.view.layer addSublayer:emitter];
emitter.renderMode = kCAEmitterLayerAdditive;
emitter.emitterPosition = CGPointMake(emitter.frame.size.width/2.0, -200);
CAEmitterCell *cell = [[CAEmitterCell alloc] init];
cell.contents = (__bridge id)[UIImage imageNamed:@"snow.jpg"].CGImage;
cell.birthRate = 100;//表示粒子的生產(chǎn)速度趋惨,值越大,生產(chǎn)的速度越大
cell.lifetime = 10.0 ;//表示粒子的生命周期惦蚊,在該范圍內(nèi)器虾,粒子不會(huì)消失
cell.alphaSpeed = 0;//粒子透明度的變化速度,為負(fù)值時(shí)說明透明度慢慢變低
cell.velocity = 150;//表示粒子的位移加速度
cell.velocityRange = 100;//表示粒子的位移加速范圍 與上一個(gè)參數(shù)配合使用
cell.emissionLongitude = M_PI/2;//粒子發(fā)射中心方向
cell.emissionRange = M_PI/2;//粒子發(fā)射范圍
cell.scale = 0.25;
emitter.emitterCells = @[cell];
CAEmitterLayer還可以實(shí)現(xiàn)放煙花效果