文檔並沒有真正談論這在技術上的作用。fillMode究竟做了什麼?
fadeInAnimation.fillMode = kCAFillModeForwards;
我並沒有真正看到這個效果。我有一個alpha設置爲0.0的視圖。然後我將它淡入。但是當我取消註釋關於h的行時,沒有任何變化。同樣的行爲。我想了解這個fillMode的功能。
文檔並沒有真正談論這在技術上的作用。fillMode究竟做了什麼?
fadeInAnimation.fillMode = kCAFillModeForwards;
我並沒有真正看到這個效果。我有一個alpha設置爲0.0的視圖。然後我將它淡入。但是當我取消註釋關於h的行時,沒有任何變化。同樣的行爲。我想了解這個fillMode的功能。
從CAMediaTiming protocol documentation:
確定接收的 呈現被凍結或刪除一次 其活動期間完成。
這就決定了在動畫的最後會發生什麼。默認情況下,它被設置爲kCAFillModeRemoved,這意味着動畫完成時動畫更改將被撤消。如果將其切換到kCAFillModeForwards,由動畫引起的更改將停滯不前。
請注意,還可能需要向removedOnCompletion屬性設置爲NO,以防止你的動畫被刪除,這將使該設置無效。
讓我給它一個更明確的答案:
雖然在外觀動畫的fillMode
屬性設置爲kCAFillModeForwards
(或kCAFillModeBoth),並在同一時間設置removedOnCompletion
到NO
可以保持你的層在其最後的狀態,當動畫完成但這種使用fillMode
不是設計方式。實際上造成傷害,如果你有其他的動畫添加到同樣的keyPath
(順便說一下,對於保持動畫的最終狀態,正確的做法是改變屬性值來匹配動畫的最後一幀。)
什麼fillMode
真正使用是這樣你就可以在所期望的狀態指定特定的子動畫
很好的解釋分組的動畫中的小孩動畫連接!是的,我將removedOnCompletion設置爲NO。這就是爲什麼我在fillMode中看不到變化,對吧?爲什麼叫做「fillMode」?所以內部它只不過是在所有動畫插值例程之後保留新的計算參數? – Thanks 2009-07-22 18:55:50