2012-12-15 40 views
1

當用戶點擊屏幕時,我生成了CALayer。然後我使用Animation將該圖層翻譯到某個位置。然後我在animationDidStop使用此代碼將其取出:animation iid中的iOS停止

[mylayer removeFromSuperLayer]; 

這裏一切正常,但是當我再次點擊一個動畫停止之前,我目前的層不會從superlayer刪除。在這種情況下我如何刪除它?

回答

0

如果你每次都創建一個新層,然後委託方法只能去除當前(如較舊的一個將會丟失)

你可以嘗試使用在你的動畫CATransaction begin/commit對和添加完成塊,這樣你就可以通過每個動畫的圖層參考

[CATransaction begin]; 

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

//your existing animation code 

[CATransaction commit];