CAReplicatorLayer*gradientLayer=[CAReplicatorLayer layer];
gradientLayer.frame=self.redView.bounds;
[self.redView.layer addSublayer:gradientLayer];
// gradientLayer.backgroundColor=[UIColor greenColor].CGColor;
CALayer*layer=[CALayer layer];
layer.position=CGPointMake(gradientLayer.bounds.size.width/2, 20);
layer.bounds=CGRectMake(0, 0, 10,10);
layer.backgroundColor=[UIColor greenColor].CGColor;
layer.transform=CATransform3DMakeScale(0, 0, 0);
[gradientLayer addSublayer:layer];
//核心动画
CABasicAnimation*anim=[CABasicAnimation animation];
anim.keyPath=@"transform.scale";
anim.fromValue=@(1);
anim.toValue=@(0);
anim.duration=0.8;
anim.repeatCount=MAXFLOAT;
[layer addAnimation:anim forKey:nil];
CGFloat angle=2*M_PI/20;
gradientLayer.instanceCount=20;
//旋转的偏移量都是相对上一次的。所以直接用make是没问题的
gradientLayer.instanceTransform=CATransform3DMakeRotation(angle, 0, 0, 1);
gradientLayer.instanceDelay=0.8/20;