[英]Quick Image Rotation 360 degree
我正在使用Swift開發iOS應用程序,並且希望通過運動將圖像旋轉360度。 每輪結束后,動畫應停止播放2秒鍾。
每次旋轉完成后,我需要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()
})
它不起作用。
非常簡單。 只需在體內調用您的函數,旋轉完成2秒后,即可調用同一函數。 而當您要停止時,只需停止將其刪除即可。 例
unowned let unownedSelf = self
let deadlineTime = DispatchTime.now() + .seconds(2)
DispatchQueue.main.asyncAfter(deadline: deadlineTime, execute: {
unownedSelf.functionToCall()
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.