iOS核心动画之CoreAnimation
- 一、Core Animation簡介
- 二、Core Animation的使用步驟
- 三、CAAnimation
- 四、CAPropertyAnimation
一、Core Animation簡介
* Core Animation,中文翻譯為核心動(dòng)畫,它是一組非常強(qiáng)大的動(dòng)畫處理API,使用它能做出非常炫麗的動(dòng)畫效果,而且往往是事半功倍。也就是說,使用少量的代碼就可以實(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í)行過程都是在后臺(tái)操作的,不會(huì)阻塞主線程。
* 要注意的是,Core Animation是直接作用在CALayer上的,并非UIView。
?
回到頂部二、Core Animation的使用步驟
1.使用它需要先添加QuartzCore.framework框架和引入主頭文件<QuartzCore/QuartzCore.h>
2.初始化一個(gè)CAAnimation對(duì)象,并設(shè)置一些動(dòng)畫相關(guān)屬性
3.通過調(diào)用CALayer的addAnimation:forKey:方法增加CAAnimation對(duì)象到CALayer中,這樣就能開始執(zhí)行動(dòng)畫了
4.通過調(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)的感覺
- 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)畫代理,用來監(jiān)聽動(dòng)畫的執(zhí)行過程
代理對(duì)象需要實(shí)現(xiàn)的方法有:(這幾個(gè)方法被定義在某個(gè)分類中)
1 @interface NSObject (CAAnimationDelegate)2 // 動(dòng)畫開始執(zhí)行的時(shí)候觸發(fā)這個(gè)方法3 - (void)animationDidStart:(CAAnimation *)anim;4 5 // 動(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)畫
總結(jié)
以上是生活随笔為你收集整理的iOS核心动画之CoreAnimation的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡销户会影响征信吗?这几种情况需注意
- 下一篇: 汇丰银行信用卡还款日可以改吗?还款日当天