CAReplicatorLayerはSubLayerを.instance***にしたがってinstanceCount個copyして表示するLayer。
instance**は全部アニメーション可能なので、CAAnimationと組み合わせるととんでもないことになる。
以下、普通に複数表示すだけのコード。
.instanceTransformに画像のwidth右に動かすTransformを渡しているので、contentLayerが横に5個(4個コピーされて)表示される。
CALayer* contentLayer = [CALayer layer];
UIImage* image = [UIImage imageNamed:@"CA.jpg"];
CGRect rect;
rect.origin = CGPointZero;
rect.size = image.size;
contentLayer.frame = rect;
contentLayer.contents = (id)image.CGImage;
CAReplicatorLayer* replicatorLayer = [CAReplicatorLayer layer];
replicatorLayer.frame = rect;
replicatorLayer.instanceCount = 5;
[replicatorLayer addSublayer:contentLayer];
[self.view.layer addSublayer:replicatorLayer];
CATransform3D transform;
transform = CATransform3DMakeTranslation(rect.size.width,
0,
0);
replicatorLayer.instanceTransform = transform;