当用户点按屏幕时,我正在生成CALayer
。然后我使用Animation
将该图层翻译到某个位置。然后我在animationDidStop
:
[mylayer removeFromSuperLayer];
这里一切正常,但是当我在上一个动画停止之前再次点击时,我的当前图层不会从超级图层中删除。在这种情况下如何删除它?
答案 0 :(得分:0)
如果您每次都要创建一个新图层,那么委托方法只能删除当前的图层(即较旧的图层将丢失)
您可以尝试在动画周围使用CATransaction begin/commit
对并添加完成块,这样您就可以为每个动画传递图层参考
[CATransaction begin];
[CATransaction setCompletionBlock:^{
[myLayer removeFromSuperlayer];
}];
//your existing animation code
[CATransaction commit];