美文网首页iOS踩过的坑系列
iOS踩过的坑之CAAnimation的Delegate

iOS踩过的坑之CAAnimation的Delegate

作者: Shaw1211 | 来源:发表于2019-04-24 14:59 被阅读0次

使用CAAnimation做layer图层的动画时,如果需要获取动画开始与结束的时机,则需要遵守CAAnimationDelegate协议,并实现协议中的两个方法:

    func animationDidStart(_ anim: CAAnimation) {
        let key = anim.value(forKey: animationKey) as! String
        if key == anisGroupKey {
            self.animationCompleted.value = false
        }
    }
    
    func animationDidStop(_ anim: CAAnimation, finished flag: Bool) {
        let key = anim.value(forKey: animationKey) as! String
        if key == anisGroupKey {
            self.animationCompleted.value = true
            //self.anisGroup.delegate = nil
        }
    }

但是,为了使视图能够在用完后释放掉,需要在合适的时机设置动画对象的delegate为nil,即上述代码注释部分。

同时,还需要:

self.animationView.layer.removeAllAnimations()

相关文章

网友评论

    本文标题:iOS踩过的坑之CAAnimation的Delegate

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