美文网首页iOS OC 学习手册
Swift 动画 - 停止和结束的标示

Swift 动画 - 停止和结束的标示

作者: 我为双鱼狂 | 来源:发表于2021-06-19 16:11 被阅读0次

    应用场景

    获取动画停止或者结束的标示,并做相应的处理

    API 以及语言

    CABasicAnimation

    swift

    关键代码

    设置动画对象的代理 CAAnimationDelegate, 并实现它的代理方法 func animationDidStop(_ anim: CAAnimation, finished flag: Bool),核心就是这个方法中的 flag 标示。

    flog 标示

    • 当 flog 标示为 true 时,动画完成;
    • 为 false 时,动画被停止,没有完成。

    示例代码

    class CricleView {
        
        func animation() {
            //添加动画
            let pathAnimation = CABasicAnimation.init(keyPath: "strokeEnd")
            pathAnimation.duration = 3 //动画持续时间
            pathAnimation.timingFunction = CAMediaTimingFunction.init(name: CAMediaTimingFunctionName.easeOut)
            pathAnimation.fromValue = 0
            pathAnimation.toValue = 1
            pathAnimation.delegate = self
            self.cricleLayer.add(pathAnimation, forKey: "strokeEndAnimation")
        }
        
        func stopAnimation() {
            isCricle = false
            #warning("停止动画,flog 输入为 false")
            self.cricleLayer.removeAnimation(forKey: "strokeEndAnimation")
        }
        
    }
    
    extension CricleView: CAAnimationDelegate {
        
        func animationDidStart(_ anim: CAAnimation) {
            print("开始动画")
        }
        
        func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
            
            #warning("如果不是完成动画,而是被停止动画,则 flag 为 false")
            if flag {
                print("动画完成")
            } else {
                print("动画被停止")
            }
        }
    }
    

    相关文章

      网友评论

        本文标题:Swift 动画 - 停止和结束的标示

        本文链接:https://www.haomeiwen.com/subject/guflyltx.html