ios中的animationDidStop

时间:2012-12-15 11:20:33

标签: objective-c ios xcode

当用户点按屏幕时,我正在生成CALayer。然后我使用Animation将该图层翻译到某个位置。然后我在animationDidStop

中使用此代码将其删除
 [mylayer removeFromSuperLayer]; 

这里一切正常,但是当我在上一个动画停止之前再次点击时,我的当前图层不会从超级图层中删除。在这种情况下如何删除它?

1 个答案:

答案 0 :(得分:0)

如果您每次都要创建一个新图层,那么委托方法只能删除当前的图层(即较旧的图层将丢失)

您可以尝试在动画周围使用CATransaction begin/commit对并添加完成块,这样您就可以为每个动画传递图层参考

[CATransaction begin];

[CATransaction setCompletionBlock:^{
    [myLayer removeFromSuperlayer];
}];

//your existing animation code

[CATransaction commit];