0
我正在製作一個項目,其中約有在ViewController
上。優化多個正在加熱設備的連續動畫
某些UIView
包含一些處理器密集的CG
圖形,在加載時完成透明度,而其他UIView
是動畫。特別是,下列旋轉動畫不斷運行。 (如果我仔細觀察,動畫看起來並不完全平滑。)
我正在測試的設備正在升溫,它不熱,但變得非常暖和。我擔心我處理器超載。
問:
有沒有一種更有效的方式來完成其連續運行使用較少的資源餓了,防止設備升溫的方法下面的動畫?
Xcode的儀器:
在負荷(最大):CPU:56% - 內存:29MB
當運行(最大):CPU:1 % - 內存:29MB
func rotateForward() {
UIView.animateWithDuration(2, delay: 0, options: .CurveLinear, animations: {() -> Void in
self.viewA.transform = CGAffineTransformRotate(self.viewA.transform, CGFloat(M_PI_2))
self.viewB.transform = CGAffineTransformRotate(self.viewB.transform, CGFloat(M_PI_2))
self.viewC.transform = CGAffineTransformRotate(self.viewC.transform, CGFloat(M_PI_2))
self.viewD.transform = CGAffineTransformRotate(self.viewD.transform, CGFloat(M_PI_2))
}) { (finished) -> Void in
self.rotateForward()
}
}
func rotateBack() {
UIView.animateWithDuration(2, delay: 0, options: .CurveLinear, animations: {() -> Void in
self.viewW.transform = CGAffineTransformRotate(self.viewW.transform, -CGFloat(M_PI_2))
self.viewX.transform = CGAffineTransformRotate(self.viewX.transform, -CGFloat(M_PI_2))
self.viewY.transform = CGAffineTransformRotate(self.viewY.transform, -CGFloat(M_PI_2))
self.viewZ.transform = CGAffineTransformRotate(self.viewZ.transform, -CGFloat(M_PI_2))
}) { (finished) -> Void in
self.rotateBack()
}
}
謝謝,這似乎旋轉它。 – user4806509
現在是否使用較少的CPU?與直接使用CPU的View動畫不同,Layer動畫直接使用GPU執行動畫。 – unniverzal