[英]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.