1.初始化CAReplicatorLayer對象
-
初始化復(fù)制層,設(shè)置位置,尺寸,顏色大小
//1.初始化復(fù)制層 CAReplicatorLayer *replicatorLayer = [CAReplicatorLayer layer]; replicatorLayer.bounds = CGRectMake(0, 0, 200, 200); replicatorLayer.backgroundColor = [UIColor grayColor].CGColor; [self.view.layer addSublayer:replicatorLayer]; -
創(chuàng)建原生圖層,設(shè)置基本單位圖層的大小,尺寸,顏色等
//初始化原生子層 CALayer *layer = [CALayer layer]; layer.bounds = CGRectMake(0, 0, 10, 10); layer.cornerRadius = 5; layer.position = CGPointMake(100, 20); layer.backgroundColor = [UIColor blackColor].CGColor; [replicatorLayer addSublayer:layer];

Snip20160312_13.png
-
給原生層添加動畫
//給原生子層添加動畫 CABasicAnimation *basic = [CABasicAnimation animation]; basic.keyPath = @"transform.scale"; basic.repeatCount = MAXFLOAT;//設(shè)置重復(fù)次數(shù) basic.autoreverses = YES;//設(shè)置動畫的反彈效果 basic.fromValue = @1; basic.toValue = @0.1; //動畫時長 CGFloat duration = 1; basic.duration = duration; [layer addAnimation:basic forKey:nil]; -
設(shè)置復(fù)制層的子層數(shù)量,子層的形變位置等
//子層數(shù) float count = 30; replicatorLayer.instanceCount = count; //一個單位圖層動畫時長為1 ,(從大到小,從小到大,2個階段) ,延遲子層的延遲時間 = 動畫總時長 / 總個數(shù) * 2個階段 replicatorLayer.instanceDelay = duration / count * 2; replicatorLayer.instanceTransform = CATransform3DRotate(layer.transform, 2 * M_PI / count, 0, 0, 1);

Snip20160312_14.png