看起來,當我從CALayer
中移除動畫或將其設置爲隱藏時,在刪除圖層之前,該圖層在約半秒內淡出,而我希望它也停止,當我也想要它。去除圖層在Core Animation中被移除或隱藏時的不透明度和時間間隔
只要點擊了CALayer
,它就應該停止,但似乎喜歡淡入淡出的效果應用於圖層。動畫垂直移動CALayer
,當它在水龍頭上被移除時,你可以看到它淡出。
我需要它在被點擊時被移除的原因是因爲UIImageView將其替換爲它的位置並運行關鍵幀圖像動畫。
看起來,當我從CALayer
中移除動畫或將其設置爲隱藏時,在刪除圖層之前,該圖層在約半秒內淡出,而我希望它也停止,當我也想要它。去除圖層在Core Animation中被移除或隱藏時的不透明度和時間間隔
只要點擊了CALayer
,它就應該停止,但似乎喜歡淡入淡出的效果應用於圖層。動畫垂直移動CALayer
,當它在水龍頭上被移除時,你可以看到它淡出。
我需要它在被點擊時被移除的原因是因爲UIImageView將其替換爲它的位置並運行關鍵幀圖像動畫。
您可以通過disabling layer actions控制這種自動動畫:
[CATransaction begin];
[CATransaction setValue:(id)kCFBooleanTrue
forKey:kCATransactionDisableActions];
[aLayer removeFromSuperlayer];
[CATransaction commit];
現在沒關係,我想最好的辦法是有效地抵消母公司層的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];
它似乎沒有工作,我的動畫是一個遵循的路徑'CAKeyFrameAnimation' - 但我認爲這不應該是個問題嗎? – 2012-07-07 20:28:31
我不確定爲什麼禁用你的行爲,如你在其他答案中所做的,與按照我描述的方式禁用它們會有所不同。奇! – 2012-07-07 20:46:19
這就是我的想法,我也看了你發給我的代碼和鏈接,因爲它是一個錯字或什麼的,但一切都好,其他人似乎使用相同的代碼來解決同一個問題,它必須是問題在我的結尾某處 – 2012-07-07 21:56:40