(一二一)核心動畫基礎

2021-09-09 04:31:03 字數 2092 閱讀 6915

核心動畫基於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...