Sto provando a creare una moneta che cade. L'immagine della moneta è un CALayer con 2 CABasicAnimations su di esso - una caduta verso il basso e una rotazione. Quando l'animazione che cade scende alla fine, rimane lì. Tuttavia, l'animazione di rotazione, che dovrebbe essere casuale e finisce in una diversa angolazione ogni volta, torna all'immagine originale di CALAyer.Dopo aver ruotato un CALayer usando CABasicAnimation, il livello torna alla sua posizione non ruotata
Voglio che rimanga nell'angolazione finita l'animazione. È possibile? Come lo faccio?
Codice:
//Moving down animation:
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
anim.duration = 1;
anim.autoreverses = NO;
anim.removedOnCompletion = YES;
anim.fromValue = [NSNumber numberWithInt: -80 - row_height * (8 - _col)];
anim.toValue = [NSNumber numberWithInt: 0];
//Rotation Animation:
CABasicAnimation *rota = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
rota.duration = 4;
rota.autoreverses = NO;
rota.removedOnCompletion = NO;
rota.fromValue = [NSNumber numberWithFloat: 0];
rota.toValue = [NSNumber numberWithFloat: 2.5 * 3.15 ];
[cl addAnimation: rota forKey: @"rotation"];
[cl addAnimation: anim forKey: @"animateFalling"];
L'ho fatto. Ho aggiunto il codice che ho usato per la domanda. – Mikle
la cosa fillMode l'ha risolto. Dio solo sa perché è necessario :) – Mikle
@Allan Qualche idea sul perché 'fillMode' deve essere impostato su' kCAFillModeForwards'? – pixelfreak