Для непрерывного вращения вы можете использовать CAKeyframeAnimation , как показано ниже.
@objc func updateHome() {
let animation = CAKeyframeAnimation(keyPath: "transform.rotation.z")
animation.duration = 1.0
animation.fillMode = kCAFillModeForwards
animation.repeatCount = .infinity
animation.values = [0, Double.pi/2, Double.pi, Double.pi*3/2, Double.pi*2]
let moments = [NSNumber(value: 0.0), NSNumber(value: 0.1),
NSNumber(value: 0.3), NSNumber(value: 0.8), NSNumber(value: 1.0)]
animation.keyTimes = moments
self.updateIcon.layer.add(animation, forKey: "rotate")
getBalances()
}
В вашем асинхронном методе (внутри) DispatchQueue.main.async вы можете остановиться, как показано ниже.Это сохранит вас в исходном положении изображения.
self.updateIcon.layer.removeAllAnimations()