美文网首页
iOS CAReplicatorLayer

iOS CAReplicatorLayer

作者: FORMAT_qi | 来源:发表于2018-03-07 13:33 被阅读11次
    • CAReplicatorLayer:复制图层
      顾名思义,复制图层就是用来复制的。它会将自己的子图层进行复制,连同子layer上的动画会一起复制。
      属性说明:
    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

    相关文章

      网友评论

          本文标题:iOS CAReplicatorLayer

          本文链接:https://www.haomeiwen.com/subject/gjshfftx.html