Core Animation1 簡(jiǎn)介

本文目錄

一、Core Animation簡(jiǎn)介

二、Core Animation的使用步驟

三、CAAnimation

四、CAPropertyAnimation

回到頂部

一、Core Animation簡(jiǎn)介

* Core Animation,中文翻譯為核心動(dòng)畫,它是一組非常強(qiáng)大的動(dòng)畫處理API,使用它能做出非常炫麗的動(dòng)畫效果,而且往往是事半功倍。也就是說(shuō),使用少量的代碼就可以實(shí)現(xiàn)非常強(qiáng)大的功能。

* Core Animation可以用在Mac OS X和iOS平臺(tái)。

*喬幫主在2007年的WWDC大會(huì)上親自為你演示Core Animation的強(qiáng)大:點(diǎn)擊查看視頻

* Core Animation的動(dòng)畫執(zhí)行過(guò)程都是在后臺(tái)操作的,不會(huì)阻塞主線程。

* 要注意的是,Core Animation是直接作用在CALayer上的,并非UIView。

回到頂部

二、Core Animation的使用步驟

1.使用它需要先添加QuartzCore.framework框架和引入主頭文件

2.初始化一個(gè)CAAnimation對(duì)象,并設(shè)置一些動(dòng)畫相關(guān)屬性

3.通過(guò)調(diào)用CALayer的addAnimation:forKey:方法增加CAAnimation對(duì)象到CALayer中,這樣就能開始執(zhí)行動(dòng)畫了

4.通過(guò)調(diào)用CALayer的removeAnimationForKey:方法可以停止CALayer中的動(dòng)畫

回到頂部

三、CAAnimation

* 從前面的敘述可以看出,要想執(zhí)行動(dòng)畫,就必須初始化一個(gè)CAAnimation對(duì)象。

* 其實(shí),一般情況下,我們使用的比較多的是CAAnimation的子類,因此,先大致看看CAAnimation的繼承結(jié)構(gòu):

黑線代表繼承,黑色文字代表類名,白色文字代表屬性。其中CAMediaTiming是一個(gè)協(xié)議(protocol)。

1.CAAnimation的常用屬性

* CAAnimation是所有動(dòng)畫類的父類,但是它不能直接使用,應(yīng)該使用它的子類

* 常見屬性有:

1>duration:動(dòng)畫的持續(xù)時(shí)間

2>repeatCount:動(dòng)畫的重復(fù)次數(shù)

3>timingFunction:控制動(dòng)畫運(yùn)行的節(jié)奏

timingFunction可選的值有:

kCAMediaTimingFunctionLinear(線性):勻速,給你一個(gè)相對(duì)靜態(tài)的感覺(jué)

kCAMediaTimingFunctionEaseIn(漸進(jìn)):動(dòng)畫緩慢進(jìn)入,然后加速離開

kCAMediaTimingFunctionEaseOut(漸出):動(dòng)畫全速進(jìn)入,然后減速的到達(dá)目的地

kCAMediaTimingFunctionEaseInEaseOut(漸進(jìn)漸出):動(dòng)畫緩慢的進(jìn)入,中間加速,然后減速的到達(dá)目的地。這個(gè)是默認(rèn)的動(dòng)畫行為。

4>delegate:動(dòng)畫代理,用來(lái)監(jiān)聽動(dòng)畫的執(zhí)行過(guò)程

代理對(duì)象需要實(shí)現(xiàn)的方法有:(這幾個(gè)方法被定義在某個(gè)分類中)

1@interfaceNSObject (CAAnimationDelegate)2//動(dòng)畫開始執(zhí)行的時(shí)候觸發(fā)這個(gè)方法3- (void)animationDidStart:(CAAnimation *)anim;45//動(dòng)畫執(zhí)行完畢的時(shí)候觸發(fā)這個(gè)方法6- (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;7@end

* 上面介紹的所有屬性都是屬于CAAnimation的,因此,CAAnimation的所有子類都能使用它們。

2.其他

* CAPropertyAnimation也是不能直接使用的,也要使用它的子類

* 所以,能用的動(dòng)畫類只剩下4個(gè):CABasicAnimation、CAKeyframeAnimation、CATransition、CAAnimationGroup

回到頂部

四、CAPropertyAnimation

*CAPropertyAnimation是CAAnimation的子類,但是不能直接使用,要想創(chuàng)建動(dòng)畫對(duì)象,應(yīng)該使用它的兩個(gè)子類:CABasicAnimation和CAKeyframeAnimation

* 它有個(gè)NSString類型的keyPath屬性,你可以指定CALayer的某個(gè)屬性名為keyPath,并且對(duì)CALayer的這個(gè)屬性的值進(jìn)行修改,達(dá)到相應(yīng)的動(dòng)畫效果。比如,指定@"position"為keyPath,就會(huì)修改CALayer的position屬性的值,以達(dá)到平移的動(dòng)畫效果

* 因此,初始化好CAPropertyAnimation的子類對(duì)象后,必須先設(shè)置keyPath,搞清楚要修改的是CALayer的哪個(gè)屬性,執(zhí)行的是怎樣的動(dòng)畫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容