Я только что создал ключевых кадров анимации, как это:Keyframe анимация ключ время
[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 секунд, а непрозрачность - 10 * 0,1 = 1 секунда, правильно? Когда я смотрю анимацию, это изменение анимируется дольше 1 секунды.
Почему?
отладки вывод выглядит правильно (от 0 до 1 вторых одушевленного от 100% до 0%, то для Еще 9 секунд ожидают от 0% до 0%). Можете ли вы описать, что видите? Вы меняете непрозрачность где-то еще? Вы не включили медленную анимацию в симуляторе, не так ли? –
Да, CAKeyframeAnimation выглядит совершенно правильно. Я вижу, что непрозрачность меняется на 2 - 2,5 секунды, а не на одну. Я никого не меняю, и Медленная анимация отключена. –
Вы видите то же самое, если сами создаете анимацию ключевого кадра (а не через методы UIView)? –