Девайс сильно греется при проигрывании анимации

Я использую этот код, чтобы проигрывать анимацию. Но когда я делаю это, мой iPhone X становится очень горячим.

override func viewDidLoad() {
        super.viewDidLoad()
        self.startRotateView(targetView: self.vinyl)
}

func startRotateView(targetView: UIView, duration: Double = 3.0) {
        UIView.animate(withDuration: duration, delay: 0.0, options: .curveLinear, animations: {
            targetView.transform = targetView.transform.rotated(by: CGFloat(Double.pi))
        }) { finished in
            self.startRotateView(targetView: targetView, duration: duration)
        }
    }

Как это исправить?


Ответы (1 шт):

Автор решения: schmidt9

Попробуйте вместо рекурсивного варианта использовать опцию повторения анимации, хотя ваш вариант я тоже проверил на iPhone SE и он не вызывает например загрузки процессора, которая могла бы вызывать нагрев, хотя можете сами проверить в Debug navigator в икскоде

func startRotateView(targetView: UIView, duration: Double = 3.0) {
    UIView.animate(withDuration: duration, delay: 0.0, options: [.repeat, .curveLinear], animations: {
        targetView.transform = targetView.transform.rotated(by: CGFloat(Double.pi))
    })
}
→ Ссылка