iOS CAReplicatorLayer

2018-03-07  本文已影响11人  FORMAT_qi
instanceCount :复制份数。(会把原始的子图层复制多少份,包括原来的一份)

instanceTransform:形变。每一份相对上一份的形变量

instanceDelay :每一份相对上一份的延迟的时间。

修改CAReplicatorLayer的颜色通道,可以改变CAReplicatorLayer的显示的样式

@property float instanceRedOffset;
@property float instanceGreenOffset;
@property float instanceBlueOffset;
@property float instanceAlphaOffset;

用这个图层,可以做颜色的渐变
属性说明:

colors :保存所有渐变的颜色,里面是CGColorRef,记得用id,让编译器以为数组里面的是OC对象。

locations :保存所有渐变的位置【0-1】

startPoint:开始渐变的点【0-1】

endPoint:结束渐变的点【0-1】

2.CAShapeLayer:形状图层
根据形状,绘制内容的图层
属性说明:

path:描述形状的路径。默认会把路径封闭,然后填充。

fillColor :填充的颜色

strokeColor:描边的颜色(如果想仅仅只描边的话,就把fillColor设为clearcolor就好)

strokeStart:开始描边的比例【0-1】

strokeEnd:结束描边的比例【0-1】

3.CAGradientLayer:渐变图层


   Do any additional setup after loading the view, typically from a nib.
   复制层
   CAReplicatorLayer *repL = [CAReplicatorLayer layer];
   repL.frame = self.contentV.bounds;
   复制5份出来.
   repL.instanceCount = 6;
   每一个形变,都是相对于它上一个复制出来的子层开始的.
   repL.instanceTransform = CATransform3DMakeTranslation(40, 0, 0);
   动画延时执行.
   repL.instanceDelay = 0.5;

   要设置复制层的颜色,原始层的颜色要设为白色.
   repL.instanceColor = [UIColor whiteColor].CGColor;
   [self.contentV.layer addSublayer:repL];

   
   添加音量震动条
   CALayer *layer = [CALayer layer];
   layer.frame = CGRectMake(0, self.contentV.bounds.size.height - 150, 30,       150);
   layer.backgroundColor = [UIColor redColor].CGColor;
   
   layer.position = CGPointMake(0, self.contentV.bounds.size.height);
   layer.anchorPoint = CGPointMake(0, 1);

   [repL addSublayer:layer];
   
   添加动画.(缩放,只缩放y方向).
   创建动画对象
   CABasicAnimation *anim = [CABasicAnimation animation];
   设置属性值.
   anim.keyPath = @"transform.scale.y";
   anim.toValue = @0;
   anim.repeatCount = MAXFLOAT;
   anim.duration = 0.5;
   anim.autoreverses = YES;
   [layer addAnimation:anim forKey:nil];

效果图:


image.png
上一篇下一篇

猜你喜欢

热点阅读