最近打開QQ的空間會有燈籠掉落下來,操作背后的控件不受影響,自己想實現這樣一個類似的功能,查閱了一下資料,有一個CAEmitterLayer的東東。
以下是CAEmitterLayer的主要屬性
contents = (__bridge id)[UIImage imageNamed:@"snow.jpg"].CGImage;
birthRate = 100;//表示粒子的生產速度,值越大,生產的速度越大
lifetime = 10.0 ;//表示粒子的生命周期,在該范圍內,粒子不會消失
alphaSpeed = 0;//粒子透明度的變化速度,為負值時說明透明度慢慢變低
velocity = 150;//表示粒子的位移加速度
velocityRange = 100;//表示粒子的位移加速范圍 與上一個參數配合使用
emissionLongitude = M_PI/2;//粒子發射中心方向
emissionRange = M_PI/2;//粒子發射范圍
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;//表示粒子的生產速度,值越大,生產的速度越大
cell.lifetime = 10.0 ;//表示粒子的生命周期,在該范圍內,粒子不會消失
cell.alphaSpeed = 0;//粒子透明度的變化速度,為負值時說明透明度慢慢變低
cell.velocity = 150;//表示粒子的位移加速度
cell.velocityRange = 100;//表示粒子的位移加速范圍 與上一個參數配合使用
cell.emissionLongitude = M_PI/2;//粒子發射中心方向
cell.emissionRange = M_PI/2;//粒子發射范圍
cell.scale = 0.25;
emitter.emitterCells = @[cell];
CAEmitterLayer還可以實現放煙花效果