私はちょうどこのようなキーフレームアニメーション作成しました:キーフレームアニメーションキー時間
[UIView animateKeyframesWithDuration:10 delay:0 options:0 animations:^{
[UIView addKeyframeWithRelativeStartTime:0 relativeDuration:.1 animations:^{
view.alpha = 0;
}];
} completion:nil];
をし、これが作成されますCAKeyframeAnimation
です:
(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>
質問:
全体のアニメーションは、不透明度を10 * 0.1 = 1秒間アニメーション化して10秒かかるでしょうか?アニメーションを見ると、変化は1秒以上アニメートされています。
なぜですか?
デバッグ出力は、次いで0〜1秒アニメイトから100%から0%に(正しく見えます9秒間0%から0%にアニメーション化)。あなたは何を見ているのか記述できますか?不透明度をどこか別のものに変更していますか?あなたはシミュレータで遅いアニメーションをオンにしていませんか? –
ええ、CAKeyframeAnimationは完全に正しいようです。私が見ているのは、不透明度が2〜2.5秒で変更されているということです。私はそれをどこでも変えず、スローアニメーションはオフになっています。 –
キーフレームアニメーションを自分で作成する場合(UIViewメソッドではなく)同じことがありますか? –