iOS核心動(dòng)畫(huà)

動(dòng)畫(huà)是iOS中非常有趣的部分尾序,同時(shí)也是提升用戶交互體驗(yàn)的有力工具悯许,本文主要分為兩個(gè)部分亥啦,第一個(gè)部分講解基礎(chǔ)知識(shí)炭剪,第二個(gè)部分列舉基本使用

一、基礎(chǔ)知識(shí)

1.1翔脱、動(dòng)畫(huà)相關(guān)框架

從上圖可以發(fā)現(xiàn)

  • UIView在最上層
  • 往下依次是CoreAnimation
  • CoreGraphics奴拦、Hardware
1.2、iOS系統(tǒng)框架

上圖為iOS中的四層架構(gòu)

  • UIView位于Cocoa Touch層
  • CoreAnimation位于Media Layer中的QuartzCore框架中届吁,查看QuartzCore的頭文件可以發(fā)現(xiàn)错妖,只引入了CoreAnimation。CALayer這個(gè)熟悉的對(duì)象是在CoreAnimation中疚沐,CoreAnimation往往作用于CALayer而不是UIView
  • Core Graphics也是在Media Layer層中的框架
1.3暂氯、UIView、QuartzCore和CoreGraphics之間的關(guān)系
  • UIView:主要負(fù)責(zé)事件響應(yīng)亮蛔、頁(yè)面展示和與RunLoop相關(guān)操作
  • QuartzCore:不單負(fù)責(zé)動(dòng)畫(huà)的創(chuàng)建和執(zhí)行痴施,還會(huì)將圖形圖像最終顯示到屏幕上(本質(zhì)上是CoreAnimation通過(guò)OpenGLES來(lái)做的)
  • CoreGraphics:是一個(gè)基于C的庫(kù)函數(shù)的高級(jí)繪畫(huà)引擎,負(fù)責(zé)創(chuàng)建最終顯示到屏幕上的數(shù)據(jù)模型
1.4、UIView和CALayer的協(xié)同
  • UIView都擁有一個(gè)CALayer辣吃,CALayer將UIView設(shè)置為了自己的代理對(duì)象
  • 對(duì)于CALayer對(duì)象动遭,改變其屬性,都會(huì)觸發(fā)一個(gè)簡(jiǎn)單動(dòng)畫(huà)
  • UIView禁止在默認(rèn)情況下禁止了CALayer的動(dòng)畫(huà)神得,所以我們?cè)诟淖僓IView的屬性的時(shí)候厘惦,不會(huì)觸發(fā)動(dòng)畫(huà),而在UIView的動(dòng)畫(huà)block中循头,我們又能產(chǎn)生動(dòng)畫(huà)绵估,在原理上為:一個(gè)可動(dòng)畫(huà)的CALayer屬性改變的時(shí)候,都會(huì)尋找并運(yùn)行一個(gè)合適的改變卡骂,這個(gè)改變是CAAction對(duì)象国裳,而UIView的CALayer對(duì)象會(huì)詢問(wèn)他的delegate,即UIView全跨,詢問(wèn)提供一個(gè)CAAction對(duì)象缝左,delegate可以通過(guò)下面三種方式之一進(jìn)行響應(yīng)
1、它可以返回一個(gè)動(dòng)作對(duì)象浓若,這種情況下 layer 將使用這個(gè)動(dòng)作渺杉。
2、它可以返回一個(gè) nil挪钓, 這樣 layer 就會(huì)到其他地方繼續(xù)尋找是越。
3、它可以返回一個(gè) NSNull 對(duì)象碌上,告訴 layer 這里不需要執(zhí)行一個(gè)動(dòng)作倚评,搜索也會(huì)就此停止。
1.5馏予、UIView和CALayer的關(guān)系
  • UIView的屬性只是簡(jiǎn)單地返回了CALayer對(duì)象的屬性
  • UIView作為CALayer的代理天梧,負(fù)責(zé)事件處理功能,CALayer負(fù)責(zé)頁(yè)面繪制(前面也提到了CoreAnimation的作用)

二霞丧、基本使用

2.1呢岗、Core Animation類圖
2.2、類別

我們常用到的為下面四種:

  • CAAnimationGroup:動(dòng)畫(huà)組蛹尝,將不同類型的動(dòng)畫(huà)同時(shí)進(jìn)行或者連續(xù)進(jìn)行
  • CABasicAnimation:基本動(dòng)畫(huà)后豫,包括一些基本屬性的動(dòng)畫(huà),例如位移突那、縮放硬贯、漸變等
  • CAKeyFrameAnimation:關(guān)鍵幀動(dòng)畫(huà),連續(xù)進(jìn)行多個(gè)階段的動(dòng)畫(huà)
  • CATransition:過(guò)渡動(dòng)畫(huà)

除了上面四種陨收,還有一種是iOS9之后提供的彈簧動(dòng)畫(huà)CASpringAnimation
另外,CoreGraphics中提供了仿射變化動(dòng)畫(huà),可以很方便地進(jìn)行一些基本動(dòng)畫(huà)操作

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末务漩,一起剝皮案震驚了整個(gè)濱河市拄衰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌饵骨,老刑警劉巖翘悉,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異居触,居然都是意外死亡妖混,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)轮洋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)制市,“玉大人,你說(shuō)我怎么就攤上這事弊予∠殚梗” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵汉柒,是天一觀的道長(zhǎng)误褪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)碾褂,這世上最難降的妖魔是什么兽间? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮正塌,結(jié)果婚禮上嘀略,老公的妹妹穿的比我還像新娘。我一直安慰自己传货,他們只是感情好屎鳍,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著问裕,像睡著了一般逮壁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上粮宛,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天窥淆,我揣著相機(jī)與錄音,去河邊找鬼巍杈。 笑死忧饭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的筷畦。 我是一名探鬼主播词裤,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼刺洒,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了吼砂?” 一聲冷哼從身側(cè)響起逆航,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎渔肩,沒(méi)想到半個(gè)月后因俐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡周偎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年抹剩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓉坎。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡澳眷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出袍嬉,到底是詐尸還是另有隱情境蔼,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布伺通,位于F島的核電站箍土,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏罐监。R本人自食惡果不足惜吴藻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望弓柱。 院中可真熱鬧沟堡,春花似錦、人聲如沸矢空。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屁药。三九已至粥血,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間酿箭,已是汗流浹背复亏。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缭嫡,地道東北人缔御。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像妇蛀,于是被迫代替她去往敵國(guó)和親耕突。 傳聞我的和親對(duì)象是個(gè)殘疾皇子笤成,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容