我在Swift中開發iOS應用程序,我想用360度旋轉圖像的運動。動畫應在每輪完成後停止2秒。快速圖像旋轉360度
我需要在每次旋轉完成後2秒延遲。我如何設置延遲?我已經完成了圖像旋轉算法。
func rotate360Degrees(_ duration: CFTimeInterval = 1.0, completionDelegate: CAAnimationDelegate? = nil) {
let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation")
rotateAnimation.fromValue = 0.0
rotateAnimation.toValue = CGFloat(M_PI * 2.0)
rotateAnimation.duration = duration
if let delegate: CAAnimationDelegate = completionDelegate {
rotateAnimation.delegate = delegate
}
rotateAnimation.repeatCount = Float.greatestFiniteMagnitude;
self.layer.add(rotateAnimation, forKey: nil)
}
對於延遲我已經試過這樣:
let deadlineTime = DispatchTime.now() + .seconds(2)
DispatchQueue.main.asyncAfter(deadline: deadlineTime, execute: {
self.imgView.rotate360Degrees()
})
它無法正常工作。
什麼不起作用?你沒有調用'rotate360Degrees',或者該方法不會導致旋轉?或旋轉工作,但旋轉之間沒有停頓? (我最好的猜測:最後一個,正確的答案涉及'CAKeyframeAnimation'因爲你正在做的是期待延遲開始動畫永遠在動畫內部) – Tommy
旋轉工作,但我需要2秒延遲在每一次旋轉中該部分不工作。 – user12346