2012-10-03 119 views
0

我想實現一個新的CATransition。使用核心動畫自定義CATranstion

例如,假設我想要做這個效果:一個n乘m陣列的雙面圖層,一邊有一部分源圖像,一邊是目標圖像的一部分。每層將圍繞其x軸旋轉180度以顯示另一側。這種邏輯(動畫CALayers)可以用於CATransition嗎?

回答

1

我不認爲你可以做到這一點。定製CATransition超出內置類型和亞型的唯一方法,是通過使用CIFilter(來自5.0的iOS或OSX 10.5)。並創建一個自定義CIFilter超越鏈接和配置內置的過濾器的唯一辦法是,根據the doc

可以以創建子類CIFilter:

  • 通過鏈接在一起的兩個過濾器以上內置核芯圖像過濾器(iOS和OS X)
  • 使用你寫的圖像處理內核(OS X只)
012自定義過濾器

這樣做此基礎上CALayer的動畫是不可能的。 在OSX上,這應該可以管理一些數學工作,但不能直接使用CALayers動畫。在iOS中,這根本不可能。

而不是做一個CATransition的,你可以實現直接使用層同樣的效果,但顯然它不會在你的UI代碼輕鬆集成。

0

我寫了一個過渡效果像你描述的,但它不是一個CATransition。相反,我創建了自己的方法來處理視圖轉換,並調用它。

我的過渡將兩個視圖切成垂直切片,然後做了一個動畫,我開始將切片圍繞它們的Y軸旋轉,從最左側的切片開始,向右側移動,創建一個酷酷的級聯影響。在CAAnimationGroup obbjects上花費了大量的工作,並且使用每個小節動畫的beginTime來錯開它。那一個過渡動畫花了約5頁的代碼。