美文网首页
可复制图层CAReplicatorLayer

可复制图层CAReplicatorLayer

作者: Maggie的小蜗居 | 来源:发表于2017-04-27 10:50 被阅读24次

CAReplicatorLayer的作用是高效生成相似的图层。它会复制出多个子图层,并且在每个复制图层上面应用不同的变换,动画。

1 . 基本属性简介

@property NSInteger instanceCount; //需要复制图层的个数
@property BOOL preservesDepth; //是否与CATransformLayer保持一样的性质,默认是NO
@property CFTimeInterval instanceDelay;  //延迟的时间 ,在每个图层上做动画的时候需要用到
@property CATransform3D instanceTransform; //作用于每个图层上面的变换
@property(nullable) CGColorRef instanceColor;  // 设置多个复制图层的颜色,默认位白色
---------------------------------------------------
设置每个复制图层相对上一个复制图层的颜色偏移量
@property float instanceRedOffset;
@property float instanceGreenOffset;
@property float instanceBlueOffset;
---------------------------------------------------
@property float instanceAlphaOffset;  //每个复制图层相对上一个图层透明度的衰减

2.使用CAReplicatorLayer简单模拟水波纹外扩

  //做动画的图层
    CAShapeLayer *layer = [CAShapeLayer layer];
//    layer.backgroundColor = [UIColor redColor].CGColor;
    layer.frame = CGRectMake(0, 0, 20, 20);
    layer.position = CGPointMake(25, 25);
    layer.fillColor = [UIColor clearColor].CGColor;
    layer.borderWidth = 1;
    layer.borderColor = [UIColor redColor].CGColor;
    layer.cornerRadius = 10;

    CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform"];
    animation.duration = 2;
    animation.repeatCount = MAXFLOAT;
    animation.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(10, 10, 1)];

    
    CABasicAnimation *opacityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
    opacityAnimation.duration = 2;
    opacityAnimation.repeatCount = MAXFLOAT;
    opacityAnimation.toValue = @(0);
    opacityAnimation.fromValue = @(1);

    CAAnimationGroup *group = [[CAAnimationGroup alloc] init];
    group.animations = @[animation,opacityAnimation];
    group.repeatCount = MAXFLOAT;
    group.duration = 2;
    [layer addAnimation:group forKey:@"dsd"];
    
  //创建一个可复制图层
    CAReplicatorLayer *replicator = [CAReplicatorLayer layer];
    replicator.frame = CGRectMake(0, 0, 50, 50);
    [self.layer addSublayer:replicator];
    replicator.instanceCount = 3;
    replicator.instanceDelay = 0.3;
//    replicator.instanceAlphaOffset = -0.3;
    [replicator addSublayer:layer];

1.gif

相关文章

  • iOS-CAReplicatorLayer

    CAReplicatorLayer 复制图层 1、什么是CAReplicatorLayer? CAReplicat...

  • 可复制图层CAReplicatorLayer

    CAReplicatorLayer的作用是高效生成相似的图层。它会复制出多个子图层,并且在每个复制图层上面应用不同...

  • iOS CAReplicatorLayer

    CAReplicatorLayer:复制图层顾名思义,复制图层就是用来复制的。它会将自己的子图层进行复制,连同子l...

  • CALayer-CAReplicatorLayer(复制图层)

    ** CAReplicatorLayer可以将自己的子图层复制指定的次数,并且复制体会保持被复制图层的各种基础属性...

  • 复制图层-CAReplicatorLayer

    复制图层-CAReplicatorLayer 有的时候我们需要很多相似的图层,这些图层也不用和用户交互,所以我们先...

  • iOS CAReplicatorLayer复制层的基本用法

    CAReplicatorLayer复制层需要批量复制一些图层时使用,复制它里面的所有子层。属性说明: instan...

  • CAReplicatorLayer(重复图层)

    CAReplicatorLayer的目的是为了高效生成许多相似的图层。它会绘制一个或多个图层的子图层,并在每个复制...

  • 2018-03-14

    CALayer-CAReplicatorLayer(复制图层) 第一次接触这个东西 学习下 mark连接:htt...

  • CAReplicatorLayer

    基本使用步骤,具体顺序看你自己了 创建用于复制的图层,添加到CAReplicatorLayer中 创建CARepl...

  • CoreAnimation之CAReplicatorLayer

    CAReplicatorLayer就是一个容器,可以对已经存在的一个图层进行复制,单一的形状经过复制后可以显示多个...

网友评论

      本文标题:可复制图层CAReplicatorLayer

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