Девайс сильно греется при проигрывании анимации
Я использую этот код, чтобы проигрывать анимацию. Но когда я делаю это, мой 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))
})
}