Hi Leute,
ich bin noch sehr neu auf dem Gebiet der Animationen und habe eine konzeptionelle Frage.
Nach einer bestimmten Aktion wird mein UI mittels CABasicAnimations verändert, unter anderem so:
Ich will nun die ursprüngliche UI wiederherstellen (in dem oberen Beispiel die Y-Position) und das ganze auch noch animiert. Wenn ich einfach nur removeAllAnimations bzw. removeAnimationForKey verwende, dann geschieht das sprunghaft.
So wie ich das verstehe, ist die Animation ja (dank setRemovedOnCompletion:NO) noch in dem Layer. Sollte man nun die Animationsparameter verändern und dann die Animation wieder "starten"? Oder gibt es zufällig einen Trick, wie man die Animation einfach rückwärts abspielt und dann entfernt?
Ich habe bisher nicht herausgefunden wie das funktionieren soll, bzw. bin mir unsicher, ob das überhaupt die richtige herangehensweise ist
PS. ich kann ja die Animation im Nachhinein nicht mehr ändern, ich bekomme Read-Only-Exceptions…
ich bin noch sehr neu auf dem Gebiet der Animationen und habe eine konzeptionelle Frage.
Nach einer bestimmten Aktion wird mein UI mittels CABasicAnimations verändert, unter anderem so:
Quellcode
- CABasicAnimation *animUser = [CABasicAnimation animationWithKeyPath:@"transform.translation.y"];
- [animUser setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
- [animUser setFromValue:[NSNumber numberWithFloat:0]];
- [animUser setToValue:[NSNumber numberWithFloat:-60]];
- [animUser setAutoreverses:NO];
- [animUser setDuration:1.0];
- [animUser setRemovedOnCompletion:NO];
- [animUser setFillMode:kCAFillModeForwards];
- [[[self userColorTongueLabel] layer] addAnimation:animUser forKey:@"growingTongueUser"];
Ich will nun die ursprüngliche UI wiederherstellen (in dem oberen Beispiel die Y-Position) und das ganze auch noch animiert. Wenn ich einfach nur removeAllAnimations bzw. removeAnimationForKey verwende, dann geschieht das sprunghaft.
So wie ich das verstehe, ist die Animation ja (dank setRemovedOnCompletion:NO) noch in dem Layer. Sollte man nun die Animationsparameter verändern und dann die Animation wieder "starten"? Oder gibt es zufällig einen Trick, wie man die Animation einfach rückwärts abspielt und dann entfernt?
Ich habe bisher nicht herausgefunden wie das funktionieren soll, bzw. bin mir unsicher, ob das überhaupt die richtige herangehensweise ist

PS. ich kann ja die Animation im Nachhinein nicht mehr ändern, ich bekomme Read-Only-Exceptions…