Как сказал Мэтт, вы не анимируете никаких анимируемых свойств. Вы можете достичь того, чего хотите, используя анимацию слоя. Замените ваш for
l oop следующим кодом.
var images = [CGImage]()
for i in 1...myScore{
images.append(UIImage(named: "rewardsCookie\(i)")!.cgImage!)
}
let animation = CAKeyframeAnimation(keyPath: "contents")
animation.values = images
let delay = 3.0 // in case you need to delay your animation
animation.duration = 5.0 // change to the total duration (ex: 0.5 * myScore)
animation.beginTime = CACurrentMediaTime() + delay
self.cookieImage.layer.add(animation, forKey: nil)
Обратите внимание, что для анимации слоя вы на самом деле не видите UIImageView, а кэшируете его версию. Это удаляется с экрана, как только анимация завершается, и оригинальный слой снова показывает себя. Таким образом, вы увидите изображение, которое было видно на cookieImageView
до начала анимации. Чтобы сохранить последнее изображение, добавьте следующую строку после кода выше
self.cookieImage.image = UIImage(named: "rewardsCookie\(myScore)")
Для получения дополнительной информации go - Документация Apple .