CABasicAnimation暂停企动

Posted 博BOBO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CABasicAnimation暂停企动相关的知识,希望对你有一定的参考价值。

        self.isAnimation = true
        let rotationAnimation = CABasicAnimation.init(keyPath: "transform.rotation.z")
        rotationAnimation.toValue = NSNumber(value: M_PI * 2.0)
        rotationAnimation.isRemovedOnCompletion = false  //后台不停止
        rotationAnimation.duration = 2   //时长
        rotationAnimation.isCumulative = true    
        rotationAnimation.repeatCount = MAXFLOAT;
        self.playPicImg.layer.add(rotationAnimation, forKey: "rotationAnimation")
    func isStartAnimation()
        if self.isAnimation 
            return
        
        self.isAnimation = true
        
        let pausedTime = self.playPicImg.layer.timeOffset
        self.playPicImg.layer.speed = 1.0;
        self.playPicImg.layer.timeOffset = 0.0;
        self.playPicImg.layer.beginTime = 0.0;
        
        let timeSincePause = self.playPicImg.layer.convertTime(CACurrentMediaTime(), from: nil) - pausedTime
        self.playPicImg.layer.beginTime = timeSincePause

    
    func isStopAnimation()
        if !self.isAnimation 
            return
        
        self.isAnimation = false
//        self.playPicImg.layer.removeAllAnimations()
        let pausedTime = self.playPicImg.layer.convertTime(CACurrentMediaTime(), from: nil)
        self.playPicImg.layer.speed = 0.0
        self.playPicImg.layer.timeOffset = pausedTime
    

 

以上是关于CABasicAnimation暂停企动的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 perform(aSelector: , with: , afterDelay: , inModes: ) 在延迟后暂停 CABasicAnimation

如何在 CABasicAnimation 结束之前重置它?

iOS 变形播放/暂停动画

CABasicAnimation - 未调用 animationDidStop

CABasicAnimation使用总结

如何在动画 CABasicAnimation 时改变速度