2012-07-07 51 views
0

看起來,當我從CALayer中移除動畫或將其設置爲隱藏時,在刪除圖層之前,該圖層在約半秒內淡出,而我希望它也停止,當我也想要它。去除圖層在Core Animation中被移除或隱藏時的不透明度和時間間隔

只要點擊了CALayer,它就應該停止,但似乎喜歡淡入淡出的效果應用於圖層。動畫垂直移動CALayer,當它在水龍頭上被移除時,你可以看到它淡出。

我需要它在被點擊時被移除的原因是因爲UIImageView將其替換爲它的位置並運行關鍵幀圖像動畫。

回答

0

您可以通過disabling layer actions控制這種自動動畫:

[CATransaction begin]; 
[CATransaction setValue:(id)kCFBooleanTrue 
       forKey:kCATransactionDisableActions]; 
[aLayer removeFromSuperlayer]; 
[CATransaction commit]; 
+0

它似乎沒有工作,我的動畫是一個遵循的路徑'CAKeyFrameAnimation' - 但我認爲這不應該是個問題嗎? – 2012-07-07 20:28:31

+0

我不確定爲什麼禁用你的行爲,如你在其他答案中所做的,與按照我描述的方式禁用它們會有所不同。奇! – 2012-07-07 20:46:19

+0

這就是我的想法,我也看了你發給我的代碼和鏈接,因爲它是一個錯字或什麼的,但一切都好,其他人似乎使用相同的代碼來解決同一個問題,它必須是問題在我的結尾某處 – 2012-07-07 21:56:40

0

現在沒關係,我想最好的辦法是有效地抵消母公司層的action財產。

parentLayer.actions = [[NSMutableDictionary alloc] initWithObjectsAndKeys: 
          [NSNull null], @"onOrderIn", 
          [NSNull null], @"onOrderOut", 
          [NSNull null], @"sublayers", 
          [NSNull null], @"contents", 
          [NSNull null], @"bounds", 
          nil]; 

[childLayer removeFromSuperlayer]; 

在我來說,我只需要到「子層」中的數據NSDict

parentLayer.actions = [[NSMutableDictionary alloc] initWithObjectsAndKeys: [NSNull null], @"sublayers", 
          nil]; 

[childLayer removeFromSuperlayer];