CAEmitterLayer

来源:互联网 发布:软件配置管理报告 编辑:程序博客网 时间:2024/05/18 12:39

在iOS 5中,苹果引入了一个新的CALayer子类叫做CAEmitterLayerCAEmitterLayer是一个高性能的粒子引擎,被用来创建实时例子动画如:烟雾,火,雨等等这些效果。

CAEmitterLayer看上去像是许多CAEmitterCell的容器,这些CAEmitierCell定义了一个例子效果。你将会为不同的例子效果定义一个或多个CAEmitterCell作为模版,同时CAEmitterLayer负责基于这些模版实例化一个粒子流。一个CAEmitterCell类似于一个CALayer:它有一个contents属性可以定义为一个CGImage,另外还有一些可设置属性控制着表现和行为。我们不会对这些属性逐一进行详细的描述,你们可以在CAEmitterCell类的头文件中找到。



#import "ViewController.h"#import <QuartzCore/QuartzCore.h>@interface ViewController ()@property (nonatomic, weak) IBOutlet UIView *containerView;@end@implementation ViewController- (void)viewDidLoad{    [super viewDidLoad];        //create particle emitter layer    CAEmitterLayer *emitter = [CAEmitterLayer layer];    emitter.frame = self.containerView.bounds;    [self.containerView.layer addSublayer:emitter];    //configure emitter    emitter.renderMode = kCAEmitterLayerAdditive;    emitter.emitterPosition = CGPointMake(emitter.frame.size.width / 2.0, emitter.frame.size.height / 2.0);    //create a particle template    CAEmitterCell *cell = [[CAEmitterCell alloc] init];    cell.contents = (__bridge id)[UIImage imageNamed:@"Spark.png"].CGImage;    cell.birthRate = 150;    cell.lifetime = 5.0;    cell.color = [UIColor colorWithRed:1 green:0.5 blue:0.1 alpha:1.0].CGColor;    cell.alphaSpeed = -0.4;    cell.velocity = 50;    cell.velocityRange = 50;    cell.emissionRange = M_PI * 2.0;    //add particle template to emitter    emitter.emitterCells = @[cell];}@end

0 0
原创粉丝点击