核心動畫基於quartzcore框架,僅僅能用於calayer,能夠實現3d效果。它在子執行緒中執行動畫,不會堵塞主線程。
要實現核心動畫,主要使用cabasicanimation實現單步動畫、使用cakeyframeanimation實現幀動畫。
動畫的主要屬性有duration、keypath、value、repeatcount等。
動畫執行完成後缺省會復位,要取消復位,須要下面兩行**:
anim.removedoncompletion = no;
anim.fillmode = kcafillmodeforwards;
要實現單步動畫。使用cabasicanimation物件就可以:
利用keypath指定操作的屬性,使用tovalue指定變化到的值。
cabasicanimation *anim = [cabasicanimation animation];
anim.duration = 0.5f;
anim.keypath = @"transform";
anim.tovalue = [nsvalue valuewithcatransform3d:catransform3dmakerotation(m_pi, 0, 1, 0)];
anim.repeatcount = 100;
// 動畫缺省會復位。要取消復位,首先禁止動畫移除。然後設定保持新位置。
anim.removedoncompletion = no;
anim.fillmode = kcafillmodeforwards;
[_blueview.layer addanimation:anim forkey:nil];
要實現幀動畫,通過cakeyframeanimation物件。通過多個value指定動作,或者通過貝塞爾曲線指定路徑都能夠:
多個value:
cakeyframeanimation *anim2 = [cakeyframeanimation animation];
anim2.duration = 0.5f;
anim2.keypath = @"position";
anim2.repeatcount = 100;
nsvalue *p1 = [nsvalue valuewithcatransform3d:catransform3dmaketranslation(50, 0, 0)];
nsvalue *p2 = [nsvalue valuewithcatransform3d:catransform3dmaketranslation(0, 0, 0)];
nsvalue *p3 = [nsvalue valuewithcatransform3d:catransform3dmaketranslation(-50, 0, 0)];
nsvalue *p4 = [nsvalue valuewithcatransform3d:catransform3dmaketranslation(0, 0, 0)];
anim2.values = @[p1,p2,p3,p4];
anim2.removedoncompletion = no;
anim2.fillmode = kcafillmodeforwards;
路徑:
cakeyframeanimation *anim2 = [cakeyframeanimation animation];
anim2.duration = 0.5f;
anim2.keypath = @"position";
anim2.repeatcount = 100;
anim2.removedoncompletion = no;
uibezierpath *path = [uibezierpath bezierpathwithovalinrect:cgrectmake(100,100,200,200)];
anim2.path = path.cgpath;
anim2.fillmode = kcafillmodeforwards;
不要忘記把動畫加入到layer。 核心動畫 基礎動畫
一.簡單介紹 capropertyanimation的子類 屬性解析 fromvalue keypath相應屬性的初始值 tovalue keypath相應屬性的結束值 隨著動畫的進行,在長度為duration的持續時間內,keypath相應屬性的值從fromvalue漸漸的變為tovalue。如果...
iOS核心動畫 基礎動畫
核心動畫 在ios中核心動畫分為幾類 基礎動畫 cabasicanimation 關鍵幀動畫 cakeyframeanimation 動畫組 caanimationgroup 轉場動畫 catransition caanimation 核心動畫的基礎類,不能直接使用,負責動畫執行時間 速度的控制,本...
IOS開發核心動畫篇 核心動畫簡介
ios開發ui篇 核心動畫簡介 一 簡單介紹 core animation,中文翻譯為核心動畫,它是一組非常強大的動畫處理api,使用它能做出非常炫麗的動畫效果,而且往往是事半功倍。也就是說,使用少量的 就可以實現非常強大的功能。core animation是跨平台的,可以用在mac os x和io...