iOS анимация не работает после перехода на другой VC Swift - PullRequest
0 голосов
/ 04 мая 2018

У меня есть небольшая фоновая анимация для изменения градиента, вы можете увидеть здесь анимация

Как вы видите, если я открываю приложение в первый раз, анимация работает, после того как изменение анимации View Controller остановлено. Мой код:

   func animateGrandient() {
    UIView.animate(withDuration: 15, delay: 0, options: [.autoreverse, .curveLinear, .repeat], animations: {
        let x = -(self.gradientView.frame.width - self.view.frame.width)
        self.gradientView.transform = CGAffineTransform(translationX: x, y: 0)
    })
}

И розетка:

@IBOutlet weak var gradientView: UIImageView!

1 Ответ

0 голосов
/ 04 мая 2018

Это происходит потому, что ваш self.gradientView.transform изменяется уже перед выполнением анимации, поэтому вам нужно сбросить self.gradientView.transform

Добавьте эту строку self.gradientView.transform = CGAffineTransform.identity в начале этого метода

фиксированный код

 func animateGrandient() {
    self.gradientView.transform = CGAffineTransform.identity
    UIView.animate(withDuration: 15, delay: 0, options: [.autoreverse, .curveLinear, .repeat], animations: {
        let x = -(self.gradientView.frame.width - self.view.frame.width)
        self.gradientView.transform = CGAffineTransform(translationX: x, y: 0)
    })
}
...