iOS_使用CAEmitterLayer實現仿微信飄落效果

在使用微信的過程中,當我們發送了某些特殊字符串時,可能會出現令你意外的效果,比如輸入‘生日快樂’會有蛋糕飄落,那么這樣的效果是如何實現的呢?在iOS 5中,蘋果引入了一個新的CALayer子類叫做CAEmitterLayer。這是一個高性能的粒子引擎,被用來創建實時例子動畫如:煙霧,火,雨等等這些效果。今天我們先來實現飄落效果:
CoderDoctorLee.gif

代碼的實現:

#pragma mark -- 粒子引擎動畫方法之飄落效果
- (void)getAnimation
{
    //創建一個CAEmitterLayer
    CAEmitterLayer *snowEmitter = [CAEmitterLayer layer];
    //降落區域的方位
    snowEmitter.frame = self.view.bounds;
    //添加到父視圖Layer上
    [self.view.layer addSublayer:snowEmitter];
    //指定發射源的位置
    snowEmitter.emitterPosition = CGPointMake(self.view.bounds.size.width / 2.0, -10);
    //指定發射源的大小
    snowEmitter.emitterSize  = CGSizeMake(self.view.bounds.size.width, 0.0);
    //指定發射源的形狀和模式
    snowEmitter.emitterShape = kCAEmitterLayerLine;
    snowEmitter.emitterMode  = kCAEmitterLayerOutline;
    //創建CAEmitterCell
    CAEmitterCell *snowflake = [CAEmitterCell emitterCell];
    //每秒多少個
    snowflake.birthRate = 3.0;
    //存活時間
    snowflake.lifetime = 50.0;
    //初速度,因為動畫屬于落體效果,所以我們只需要設置它在y方向上的加速度就行了。
    snowflake.velocity = 10;
    //初速度范圍
    snowflake.velocityRange = 5;
    //y軸方向的加速度
    snowflake.yAcceleration = 30;
    //以錐形分布開的發射角度。角度用弧度制。粒子均勻分布在這個錐形范圍內。
    snowflake.emissionRange = 5;
    //設置降落的圖片
    snowflake.contents  = (id) [[UIImage imageNamed:@"2"] CGImage];
    //圖片縮放比例
    snowflake.scale = 0.5;
    //開始動畫
    snowEmitter.emitterCells = [NSArray arrayWithObject:snowflake];
}
接下來在想實現這個效果的位置調用方法即可:
- (void)viewDidLoad {
    [super viewDidLoad];
    [self getAnimation];
    // Do any additional setup after loading the view, typically from a nib.
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容