在使用微信的過(guò)程中络拌,當(dāng)我們發(fā)送了某些特殊字符串時(shí)俭驮,可能會(huì)出現(xiàn)令你意外的效果,比如輸入‘生日快樂(lè)’會(huì)有蛋糕飄落春贸,那么這樣的效果是如何實(shí)現(xiàn)的呢混萝?在iOS 5中,蘋(píng)果引入了一個(gè)新的CALayer子類(lèi)叫做CAEmitterLayer萍恕。這是一個(gè)高性能的粒子引擎逸嘀,被用來(lái)創(chuàng)建實(shí)時(shí)例子動(dòng)畫(huà)如:煙霧,火允粤,雨等等這些效果崭倘。今天我們先來(lái)實(shí)現(xiàn)飄落效果:
代碼的實(shí)現(xiàn):
#pragma mark -- 粒子引擎動(dòng)畫(huà)方法之飄落效果
- (void)getAnimation
{
//創(chuàng)建一個(gè)CAEmitterLayer
CAEmitterLayer *snowEmitter = [CAEmitterLayer layer];
//降落區(qū)域的方位
snowEmitter.frame = self.view.bounds;
//添加到父視圖Layer上
[self.view.layer addSublayer:snowEmitter];
//指定發(fā)射源的位置
snowEmitter.emitterPosition = CGPointMake(self.view.bounds.size.width / 2.0, -10);
//指定發(fā)射源的大小
snowEmitter.emitterSize = CGSizeMake(self.view.bounds.size.width, 0.0);
//指定發(fā)射源的形狀和模式
snowEmitter.emitterShape = kCAEmitterLayerLine;
snowEmitter.emitterMode = kCAEmitterLayerOutline;
//創(chuàng)建CAEmitterCell
CAEmitterCell *snowflake = [CAEmitterCell emitterCell];
//每秒多少個(gè)
snowflake.birthRate = 3.0;
//存活時(shí)間
snowflake.lifetime = 50.0;
//初速度,因?yàn)閯?dòng)畫(huà)屬于落體效果维哈,所以我們只需要設(shè)置它在y方向上的加速度就行了绳姨。
snowflake.velocity = 10;
//初速度范圍
snowflake.velocityRange = 5;
//y軸方向的加速度
snowflake.yAcceleration = 30;
//以錐形分布開(kāi)的發(fā)射角度登澜。角度用弧度制阔挠。粒子均勻分布在這個(gè)錐形范圍內(nèi)。
snowflake.emissionRange = 5;
//設(shè)置降落的圖片
snowflake.contents = (id) [[UIImage imageNamed:@"2"] CGImage];
//圖片縮放比例
snowflake.scale = 0.5;
//開(kāi)始動(dòng)畫(huà)
snowEmitter.emitterCells = [NSArray arrayWithObject:snowflake];
}
接下來(lái)在想實(shí)現(xiàn)這個(gè)效果的位置調(diào)用方法即可:
- (void)viewDidLoad {
[super viewDidLoad];
[self getAnimation];
// Do any additional setup after loading the view, typically from a nib.
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者