Я использую Xcode 10 и пытаюсь сделать базовую анимацию:
UIView.animateKeyframes(withDuration: 8.0,delay: 0.0, options:[.calculationModeDiscrete], animations: {
UIView.addKeyframe(withRelativeStartTime: 0.00, relativeDuration: 0, animations: {
self.alpha = 0.0
})
UIView.addKeyframe(withRelativeStartTime: 0.125, relativeDuration: 0, animations: {
self.alpha = 1.0
})
})
Как я понял UIView.addKeyframe
, в этом примере моя анимация должна занять в общей сложности 8 секунд,таким образом, кадр в 0.125 должен быть в первую секунду (8 раз 0.125 = 1).Длительность каждого кадра равна 0, поэтому анимация анимируется сразу.Однако он появляется только на 2-й секунде, а не на 1-й, как ожидалось.
Это ошибка или я что-то пропустил?
РЕДАКТИРОВАТЬ: очень странный факт, я пытался добавить некоторые ключевые кадры с той же задержкой (1/8), и для них это занимает менее секунды, но более чем 2 секунды для первого ключевого кадра!Это определенно похоже на ошибку ...
UIView.addKeyframe(withRelativeStartTime: 0.25, relativeDuration: 0, animations: {
self.alpha = 0.0
})
UIView.addKeyframe(withRelativeStartTime: 0.375, relativeDuration: 0, animations: {
self.alpha = 1.0
})