Вы можете использовать self.layer.speed
, чтобы плавно уменьшить скорость анимации
Вы можете сделать это так
Примечание: вам нужно внести некоторые изменения, здесь они не тестируются в xcode
let timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) { (timer) in
self.layer.timeOffset = self.layer.convertTime(CACurrentMediaTime(), from: nil)
if self.layer.speed == 0 { timer.invalidate() }
self.layer.beginTime = CACurrentMediaTime()
self.layer.speed -= 0.5
}
timer.fire()
Надеюсь, это полезно