He intentado crear un efecto de texto genial con CAReplicatorlayer, CATextLayer y animaciones muy básicas. Estoy tratando de hacer que las letras parezcan que se están cayendo desde la parte superior de la pantalla seguidas por replicadores geniales que se volverán cada vez menos visibles. He logrado hacer este efecto pero no completamente.Trabajando con CAReplicatorLayer
Hasta el momento esto es lo que tengo:
CATextLayer *messageLayer = [CATextLayer layer];
[messageLayer setForegroundColor:[[UIColor blackColor] CGColor]];
[messageLayer setContentsScale:[[UIScreen mainScreen] scale]];
[messageLayer setFrame:CGRectMake(0, 0, 40, 40)];
[messageLayer setString:@"A"];
CAReplicatorLayer *replicatorX = [CAReplicatorLayer layer];
//Set the replicator's attributes
replicatorX.frame = CGRectMake(0, 0, 40, 40);
replicatorX.anchorPoint = CGPointMake(0,0);
replicatorX.position = CGPointMake(0, 0);
replicatorX.instanceCount = 9;
replicatorX.instanceDelay = 0.15;
replicatorX.instanceAlphaOffset = -0.1;
replicatorX.zPosition = 200;
replicatorX.anchorPointZ = -160;
[replicatorX addSublayer:messageLayer];
[self.view.layer addSublayer:replicatorX];
messageLayer.position = CGPointMake(40, 400);
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position.y"];
animation.fromValue = [NSNumber numberWithInt:0];;
animation.toValue = [NSNumber numberWithInt:400];
animation.duration = 3;
[messageLayer addAnimation:animation forKey:@"s"];
Tengo dos problemas:
- Las capas replicados están empezando en el punto final.
- Cuando la capa principal alcanza su último punto animado, la animación se detiene y las capas replicadas no pueden finalizar su animación.