Я пытаюсь создать анимацию, в которой элементы появляются для просмотра в шахматном порядке.Для этого я использовал CAKeyframeAnimation, но для достижения ошеломления мне нужно указать beginTime
.
Проблема в том, что мне бы хотелось, чтобы анимация не возвращалась к исходной позиции после ее завершения, поэтому я задаю значение для модели следующим образом: view.layer.transform = CATransform3DIdentity
перед анимация добавлена в слой.
Однако анимация возвращается к исходной позиции, потому что я указал beginTime.Есть ли способ обойти это?
func addAnimation(view: UIView, index: Int) {
let values = RK4SpringAnimation(tension: 600, friction: 60, initialVelocity: 0) // just provides an array of values between 0.0 and 1.0.
let positions = values.map { Float(view.layer.frame.width) - (Float($0) * Float(view.layer.frame.width)) }
let animation = CAKeyframeAnimation(keyPath: "transform.translation.x")
animation.values = positions
animation.duration = 0.716
animation.beginTime = CACurrentMediaTime() + Double(index) * 0.015
view.layer.transform = CATransform3DIdentity // set the final value on the model.
view.layer.add(animation, forKey: "transform2")
}