2011-06-22 62 views
2

我想創建一個類似於WWDC2011 Keynote中顯示的新的Lion Mail.app對話動畫的動畫效果。將CALayer拆分爲動畫的子圖層

http://www.razorianfly.com/wp-content/uploads/Screen-shot-2011-02-28-at-16.31.48.png

我有一個原型的效果與使用靜態內容(UIImageViews的)10個CALayers時工作,但我需要知道如何在運行時做到這一點。

如何獲取圖層層次結構並將其分割爲臨時子圖層進行動畫設置?

+0

這可以通過CAReplicatorLayer實現嗎? – AlexJon

回答

0

我對iOS上非常相似的東西的做法是創建一個離屏位圖上下文,使用CALayer調用renderInContext將我的圖層渲染到該圖層中,然後使用CGImageCreateWithImageInRect()將結果圖像切分成一堆單獨的CGImages。 。然後,我將每個圖像作爲其工作得很好的圖層的內容進行安裝。

Bill Dudney核心動畫書有一個名爲Confetti的示例iOS應用程序,演示瞭如何執行切片和切塊。

這將是一個更多的工作在Mac OS上,因爲你沒有非常方便的UIGraphicsBeginImageContext方法,並且將不得不使用低級CG調用來創建屏幕外上下文,但它記錄在Xcode文檔中Quartz中標題爲「Graphics Contexts」的部分。