layer

来源:互联网 发布:淘宝上购买飞行燃料 编辑:程序博客网 时间:2024/06/11 07:08

1.赋值图层

 

在使用复制图层的时候,必须重写layerClass,把原有的CALayer 修改成 CAReplicatorLayer//创建重写后 可以复制的图层CanReplicatorLayer *view= [[CanReplicatorLayer alloc]initWithFrame:        CGRectMake(0, 100, 300, 300)];[self.view addSubview:view];self.view.backgroundColor =[UIColor whiteColor];UIImageView *imageView =[[UIImageView alloc]initWithFrame:        CGRectMake(0, 100, 300, 300)];imageView.contentMode =UIViewContentModeScaleAspectFit;imageView.image =[UIImage imageNamed:@"H4"];[view addSubview:imageView];//复制图层CAReplicatorLayer *layer = (CAReplicatorLayer *)view.layer;//instance 复制之后,有原来的图层  有新的图层,这是现在实例化出来的layer的数量layer.instanceCount = 2;//复制出来一份//改变复制图层的样式CATransform3D tansFrom = CATransform3DMakeTranslation(0, 80, 0);layer.instanceTransform = CATransform3DRotate(tansFrom,180*M_PI/180, 1, 0, 0);//设置复制图层 颜色偏移量layer.instanceRedOffset =-0.2;layer.instanceBlueOffset = -0.3;layer.instanceGreenOffset =-0.4;


2. 渐变图层

CAGradientLayer        colors:渐变颜色的数组 必须是CGColor类型        locations: 颜色渐变的百分比 数组        startPoint: 颜色渐变的起始点        endPoint:颜色渐变的终点 颜色会根据设置的起始点和终点去变化self.view.backgroundColor =[UIColor whiteColor];UIImageView *imageView =[[UIImageView alloc]initWithFrame:self.view.frame];imageView.contentMode =UIViewContentModeScaleAspectFit;imageView.image =[UIImage imageNamed:@"H4"];[self.view addSubview:imageView];//初始化渐变 图层CAGradientLayer *layer =[CAGradientLayer layer];layer.frame =self.view.frame;//设置渐变的颜色数组layer.colors =@[(id)[UIColor redColor].CGColor,                (id)[UIColor orangeColor].CGColor,                (id)[UIColor yellowColor].CGColor,                (id)[UIColor greenColor].CGColor,                (id)[UIColor cyanColor].CGColor,                (id)[UIColor blueColor].CGColor,                (id)[UIColor purpleColor].CGColor];//设置透明度layer.opacity =0.2;//设置起始点layer.startPoint  = CGPointMake(0, 0);//设置layer.locations =@[@0.1,@0.2,@0.3];[self.view.layer addSublayer:layer];

3.粒子发送器图层

   CAEmitterLayer:发送器        birthRate:每秒发送粒子数量        emitterMode :发送的样式            kCAEmitterLayerPoints:点            kCAEmitterLayerOutline:线            kCAEmitterLayerSurface:面            kCAEmitterLayerVolume:团            kCAEmitterLayerRectangle 矩形            kCAEmitterLayerCuboid 立方体            kCAEmitterLayerCircle 曲线            kCAEmitterLayerSphere 圆形        renderMode渲染样式            kCAEmitterLayerOldestFirst 最后的出生的粒子 在第一个            kCAEmitterLayerOldestLast 最后的出生的粒子 在最后面            kCAEmitterLayerBackToFront 把后面的 放到上面            kCAEmitterLayerAdditive 叠加        kCAEmitterLayerOldestFirst 最后的出生的粒子 在第一个        kCAEmitterLayerOldestLast 最后的出生的粒子 在最后面        kCAEmitterLayerBackToFront 把后面的 放到上面        kCAEmitterLayerAdditive 叠加        emitterCells:在粒子发送器上面 添加粒子    CAEmitterCell:粒子        contents:粒子的内容        lifetime:存活时间        lifetimeRange:存活时间范围        birthRate:每秒粒子生成的数量        emissionLatitude:散发的纬度(方向) 纬度表示 上下        emissionLongitude:散发的经度(方向) 经度表示左右        velocity :发送的速度(速度越快,越远)        velocityRange:发送的速度范围        xAcceleration:X轴加速度        yAcceleration:y轴加速度        zAcceleration:z轴加速度        emissionRange:散发的范围 弧度        name:可以通过名字 找到粒子- (void)viewDidLoad {    [super viewDidLoad];//初始化粒子发送器    //self.emitterLayer.frame = CGRectMake(0, 300, 100,400);    //    设置粒子发送器 每秒钟发送的数量    self.emitterLayer.birthRate = 1;    //设置粒子的中心点    //self.emitterLayer.position = CGPointMake(0, 0);    //    设置粒子发送器的样式    self.emitterLayer.renderMode = kCAEmitterLayerBackToFront;    //设置粒子的中心店    self.emitterLayer.emitterPosition =self.view.center;//初始化粒子    CAEmitterCell *cell = [CAEmitterCell emitterCell];    cell.contents = (id)[UIImage imageNamed:@"H3"].CGImage;    //粒子的出生量    cell.birthRate = 10;    //粒子的存活时间,默认是0,单位是秒    cell.lifetime = 10;    cell.lifetimeRange =11;    //粒子发送的速度,默认是0    cell.velocity = 100;    cell.velocityRange= 10;    //设置粒子发送的 方向    cell.emissionLongitude = 30*M_PI/180;    cell.emissionLatitude = M_PI/180;    //设置粒子散发的范围 弧度    cell.emissionRange = 180*M_PI/180;    //设置粒子的加速度    cell.yAcceleration = -100;// 把粒子的cell 放到粒子发送器上    self.emitterLayer.emitterCells = @[cell];}-(CAEmitterLayer *)emitterLayer{    if (_emitterLayer) {        return _emitterLayer;    }    _emitterLayer =[CAEmitterLayer layer];    [self.view.layer addSublayer:_emitterLayer];    return _emitterLayer;}

0 0
原创粉丝点击