ich nur eine Keyframe-Animation wie diese erstellt haben:Keyframe-Animation Schlüssel Zeit
[UIView animateKeyframesWithDuration:10 delay:0 options:0 animations:^{
[UIView addKeyframeWithRelativeStartTime:0 relativeDuration:.1 animations:^{
view.alpha = 0;
}];
} completion:nil];
Und das ist ein CAKeyframeAnimation
, die erstellt wird:
(lldb) po [self.layer animationForKey:@"opacity"]
<CAKeyframeAnimation:0x10a6364b0; keyTimes = (
0,
"0.1",
1
); values = (
1,
0,
0
); calculationMode = linear; delegate = <UIViewKeyframeAnimationState: 0x10a6358d0>; fillMode = both; timingFunction = easeInEaseOut; duration = 10; keyPath = opacity>
Frage:
Die Die gesamte Animation sollte 10 Sekunden dauern, wobei die Deckkraft für 10 * 0,1 = 1 Sekunde animiert wird, oder? Wenn ich mir die Animation ansehe, wird die Änderung weit länger als 1 Sekunde animiert.
Warum?
Die Debug-Ausgabe (von 0 bis 1 Sekunde belebter von 100% auf 0%, dann richtig sucht 9 weitere Sekunden animieren von 0% bis 0%). Kannst du beschreiben, was du siehst? Änderst du die Opazität woanders? Sie haben keine langsamen Animationen im Simulator eingeschaltet, oder? –
Ja, CAKeyframeAnimation sieht völlig richtig aus. Was ich sehe ist, dass die Opazität für 2 - 2,5 Sekunden geändert wird, nicht eine. Ich ändere es nicht irgendwo und Slow Animationen sind ausgeschaltet. –
Sehen Sie das gleiche, wenn Sie die Keyframe-Animation selbst erstellen (nicht über die UIView-Methoden)? –