Core Animation核心動畫

2021-07-12 06:36:14 字數 3109 閱讀 4268

1.核心動畫關係:(常用)

所有核心動畫都是從caanimation類繼承而來的,caanimation實現camediatiming協議,提供動畫的持續時間,速度,重複的計數。caanimation也實現了caaction協議。

catransition提供了乙個圖層變化的過渡效果,可進行fade(淡出),push(推),reveal(顯露)圖層的內容。

caanimationgroup允許一系列動畫效果組合在一起形成動畫。

capropertyanimation是乙個抽象的子類,它支援動畫的顯示土城的關鍵路徑中指定的屬性。

cabasicanimation簡單的為圖層屬性提供修改。

cakeyframeanimation支援關鍵幀動畫,指定的圖層屬性的關鍵路徑動畫,包括動畫的每個階段的價值,以及

關鍵幀的時間和計時功能的一系列值。

catransaction是核心動畫裡面負責協調多個動畫原子更新顯示操作。包括隱式事務和顯示事務。

在圖層的動畫屬性被乙個執行緒修改時,同時該執行緒下次迭代的時候自動提交修改的時候隱式事務自動建立。

顯示事務發生在程式在修改動畫屬性之前給catransaction傳送乙個開始訊息,在動畫屬性修改後提交資訊。

2.圖層的座標系(calayer)

bound.origin為圖層的原點。bounds.size=frame.size

(當你設定圖層的frame屬性的時候,position會根據錨點anchorpoint相應的改變,當你設定圖層的

position屬性的時候,bounds會根據錨點anchorpoint做相應的改變)。

catransform3d的資料結構定義乙個同質的三維變換(4x4 cgfloat值的矩陣),用於圖層的旋轉,縮放,

偏移,歪斜和應用的透視。

變換函式同時把catransform3d矩陣轉化為cgaffinetransform(仿射)矩陣。

關鍵路徑修改變換:

3.calayer新增和刪除圖層

與uiview一樣calayer也有相似的方法:

4.圖層大小和位置

5.裁剪圖層:

6.賦予圖層內容

建立圖層:calayer *layer=[calayer layer];

layer.position=cgpointmake(50.0f,50.0f);

layer.bounds=cgrectmake(0.0f,0.0f,100.0f,100.0f);

賦予內容:layer.contents=[uiimage imaged:@「***.png」];

6.圖層座標系

7.隱式動畫:

layer.opacticy=0.0;layer.zposition=-100;

layer.opacticy=1.0;layer.zposition=100;

8.顯示動畫

cabasicanimation *an=[cabasicanimation 

animationwithkeypath:@"opacity"];

an.duration=0.5f;

an.repeatcount=2;

an.autoreverses=yes;

an.fromvalue=[nsnumber numberwithfloat:1.0f];

an.tovalue=[nsnumber numberwithfloat:0.0f];

[layer addanimation:an forkey:@"animation"];

8.開始和結束動畫

removeanimationforkey:或者通過給圖層發乙個removeallanimations的訊息來停止

圖層停止所有的動畫。

9.實現caaction協議

10.事務與事務的時間

[catransaction begin];

[catransaction setvalue:[nsnumber numberwithfloat:10.0f]forkey:kcatransactionanimationd

uration];

layer,zposition=200.0;

layer.opactity=0.0或animation.hiddlen=yes;

[catransaction commit];

11.幾何屬性

backgroundcolor背景顏色

bordercolor邊框顏色

borderwidth邊框大小

shadowcolor陰影顏色

shadowoffset陰影起始

shadowopacity陰影透明度

shadowradius陰影半徑

Core Animation 核心動畫

coreanimation也就是核心動畫,是一組非常強大的動畫處理api,可以使用少量的 做出絢麗的效果,是直接作用在calayer上的,並非uiview,並且core animation的動畫執行過程都是在後台操作,不會阻塞主線程.所有動畫都是作用在calayer上的,當把動畫新增到layer上,...

Core Animation 核心動畫

caanimation類,是乙個抽象類。遵循camediatiming協議和caaction協議!1.cabasicanimation 基本動畫 提供了對單一動畫的實現。設定calayer的keypath相應屬性的初始值 結束值 動畫的時間 2.cakeyframeanimation 關鍵楨動畫 可...

ios 核心動畫CoreAnimation

核心動畫其實就是core animation可以用在mac os x 和ios的平台 core animation 的動畫執行過程都是在後台進行操作的,不會堵塞主線程。core animation是直接作用在calayer上,不是作用在uiview上。核心動畫可以修改動畫執行的時間 核心動畫結束後會...