我想實現一個新的CATransition。使用核心動畫自定義CATranstion
例如,假設我想要做這個效果:一個n乘m陣列的雙面圖層,一邊有一部分源圖像,一邊是目標圖像的一部分。每層將圍繞其x軸旋轉180度以顯示另一側。這種邏輯(動畫CALayers)可以用於CATransition嗎?
我想實現一個新的CATransition。使用核心動畫自定義CATranstion
例如,假設我想要做這個效果:一個n乘m陣列的雙面圖層,一邊有一部分源圖像,一邊是目標圖像的一部分。每層將圍繞其x軸旋轉180度以顯示另一側。這種邏輯(動畫CALayers)可以用於CATransition嗎?
我不認爲你可以做到這一點。定製CATransition
超出內置類型和亞型的唯一方法,是通過使用CIFilter
(來自5.0的iOS或OSX 10.5)。並創建一個自定義CIFilter
超越鏈接和配置內置的過濾器的唯一辦法是,根據the doc:
012自定義過濾器可以以創建子類CIFilter:
- 通過鏈接在一起的兩個過濾器以上內置核芯圖像過濾器(iOS和OS X)
- 使用你寫的圖像處理內核(OS X只)
這樣做此基礎上CALayer的動畫是不可能的。 在OSX上,這應該可以管理一些數學工作,但不能直接使用CALayers動畫。在iOS中,這根本不可能。
而不是做一個CATransition的,你可以實現直接使用層同樣的效果,但顯然它不會在你的UI代碼輕鬆集成。
我寫了一個過渡效果像你描述的,但它不是一個CATransition。相反,我創建了自己的方法來處理視圖轉換,並調用它。
我的過渡將兩個視圖切成垂直切片,然後做了一個動畫,我開始將切片圍繞它們的Y軸旋轉,從最左側的切片開始,向右側移動,創建一個酷酷的級聯影響。在CAAnimationGroup obbjects上花費了大量的工作,並且使用每個小節動畫的beginTime來錯開它。那一個過渡動畫花了約5頁的代碼。