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
网友评论