Próbuję stworzyć spadającą monetę. Obraz monety jest CALayerem z 2 CABasicAnimations na nim - spadającym i obrotowym. Kiedy spadająca animacja dobiega końca, zostaje tam. Jednak animacja rotacji, która ma być losowa i kończy się pod innym kątem za każdym razem, po prostu wraca do oryginalnego obrazu CALAyer.Po obróceniu CALayera za pomocą CABasicAnimation, warstwa przeskakuje z powrotem do jego niezablokowanej pozycji
Chcę, aby pozostała pod kątem, w którym zakończyła się animacja. Czy to możliwe? Jak mam to zrobić?
Kod:
//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"];
Zrobiłem. Dodałem kod użyty do pytania. – Mikle
rzecz wypełniona rozwiązała. Bóg wie, dlaczego to jest potrzebne :) – Mikle
@Allan Każdy pomysł, dlaczego 'fillMode' musi być ustawiony na' kCAFillModeForwards'? – pixelfreak