Ich habe eine so:Wie kann ein CAKeyframeAnimation den aktuellen Status übernehmen, wenn er einen anderen überschreibt?
CALayer *layer = stripeButton.layer;
CAKeyframeAnimation *moveAnim = [CAKeyframeAnimation animationWithKeyPath:@"bounds.origin.y"];
moveAnim.duration = 3.35;
moveAnim.repeatCount = 0;
moveAnim.autoreverses = NO;
moveAnim.removedOnCompletion = NO;
moveAnim.calculationMode = kCAAnimationLinear;
moveAnim.fillMode = kCAFillModeForwards;
// ... keys and values here ...
[theLayer addAnimation:moveAnim forKey:@"theAnimation"];
Sie sehen diese Animation 3,35 Sekunden geht. In der Zwischenzeit kann es vorkommen, dass bei z. B. 2 Sekunden eine neue Animation mit der gleichen Taste @ "theAnimation" für unterschiedliche Werte gestartet wird.
Problem, was passiert: Neue Animation nimmt den aktuellen sichtbaren Zustand nicht auf. Es fängt hart von vorne an. Die Ansicht springt hässlich auf die Startposition und von dort beginnt die neue Animation. Für UIView gibt es einen setAnimationsBeginFromCurrentState = YES, aber ich habe nichts Ähnliches für CAKeyFrameAnimation gefunden. Irgendeine Idee?