實(shí)現(xiàn)動(dòng)畫方式深度解析(四) —— QuartzCore框架(一)

版本記錄

版本號(hào) 時(shí)間
V1.0 2017.09.20

前言

app中好的炫的動(dòng)畫可以讓用戶耳目一新嵌灰,為產(chǎn)品增色不少榄檬,關(guān)于動(dòng)畫的實(shí)現(xiàn)我們可以用基本動(dòng)畫永高、關(guān)鍵幀動(dòng)畫恋拍、序列幀動(dòng)畫以及基于CoreGraphic的動(dòng)畫等等垛孔,接下來這幾篇我就介紹下我可以想到的幾種動(dòng)畫繪制方法。具體Demo示例已開源到Github —— 刀客傳奇施敢,感興趣的可以看我寫的另外幾篇周荐。
1. 實(shí)現(xiàn)動(dòng)畫方式深度解析(一) —— 播放GIF動(dòng)畫(一)
2. 實(shí)現(xiàn)動(dòng)畫方式深度解析(二) —— 播放GIF動(dòng)畫之框架FLAnimatedImage的使用(二)
3. 實(shí)現(xiàn)動(dòng)畫方式深度解析(三) —— 播放序列幀動(dòng)畫(一)

框架基本結(jié)構(gòu)

1. OC中所有系統(tǒng)框架及分類

說到框架這里需要外延一下子,大家對(duì)OC中的有哪些框架以及具體可以分為幾類清楚嗎僵娃?下面我們就看一下OC中框架的基本結(jié)構(gòu)概作。

看完上面幾個(gè)圖示,大家應(yīng)該會(huì)感覺順了很多默怨。

2. QuartzCore框架

大家知道利用CoreAnimation可以實(shí)現(xiàn)動(dòng)畫讯榕,但是CoreAnimation并不是一個(gè)單獨(dú)的框架,它是屬于QuartzCore框架里面的先壕。下面我們就看一下這個(gè)框架的結(jié)構(gòu)和主要的類瘩扼。


框架的主要功能模塊分類

1. Layer Basics

  • CALayer

    • 該對(duì)象可以管理基于圖像的內(nèi)容,同時(shí)允許你在那個(gè)內(nèi)容上執(zhí)行動(dòng)畫垃僚。
  • CALayerDelegate

    • 你的app可以實(shí)現(xiàn)的與layer相關(guān)事件響應(yīng)集绰。
  • CAConstraint

    • 在兩個(gè)layers之間的單個(gè)的布局(layout)。
  • CALayoutManager

    • 允許對(duì)象管理layer及其子layer的布局的方法谆棺。
  • CAConstraintLayoutManager

    • 提供基于constraint layout管理者對(duì)象栽燕。
  • CAAction

    • 一個(gè)接口罕袋,允許對(duì)象響應(yīng)CALayer觸發(fā)的行為。

2. Drawing Text, Shapes, and Colors

  • CAGradientLayer

    • 一個(gè)layer用于在background color上畫顏色漸變色碍岔,填充圖層的形狀(包括圓角)浴讯。
  • CAShapeLayer

    • 在其坐標(biāo)空間中繪制立方貝塞爾樣條曲線的圖層。
  • CATextLayer

    • 一個(gè)提供簡(jiǎn)單文本布局和渲染純文本或?qū)傩宰址膱D層蔼啦。

3. Animating Content

  • CAAnimation

    • Core Animation動(dòng)畫抽象父類榆纽。
  • CAAnimationDelegate

    • 您的應(yīng)用程序可以實(shí)現(xiàn)的方法,以便在動(dòng)畫開始和停止時(shí)進(jìn)行響應(yīng)捏肢。
  • CAPropertyAnimation

    • CAAnimation的一個(gè)抽象子類奈籽,用于創(chuàng)建操縱圖層屬性值的動(dòng)畫。
  • CABasicAnimation

    • 為圖層屬性提供基本的單關(guān)鍵幀動(dòng)畫功能的對(duì)象鸵赫。
  • CAKeyframeAnimation

    • 為圖層對(duì)象提供關(guān)鍵幀動(dòng)畫功能的對(duì)象衣屏。
  • CASpringAnimation

    • 一種將彈簧般的力應(yīng)用于圖層屬性的動(dòng)畫。
  • CATransition

    • 提供圖層狀態(tài)之間動(dòng)畫轉(zhuǎn)換的對(duì)象辩棒。
  • CAValueFunction

    • 提供定義動(dòng)畫轉(zhuǎn)換的靈活方法的對(duì)象狼忱。

4. Batching Animations

  • CAAnimationGroup

    • 允許將多個(gè)動(dòng)畫分組并同時(shí)運(yùn)行的對(duì)象。
  • CATransaction

    • 將多個(gè)層次樹操作分組到渲染樹的原子更新的機(jī)制一睁。

5. Timing

  • CAMediaTimingFunction

    • 將動(dòng)畫的起搏定義為時(shí)序曲線的函數(shù)钻弄。
  • CAMediaTiming

    • 對(duì)分層計(jì)時(shí)系統(tǒng)進(jìn)行建模的方法,允許對(duì)象在其父級(jí)和本地時(shí)間之間映射時(shí)間卖局。

6. Working with Particle Systems

7. Advanced Layer Options

  • CAReplicatorLayer

    • 創(chuàng)建其子層(源層)的指定數(shù)量的副本的層批销,每個(gè)副本可能具有應(yīng)用于其的幾何,時(shí)間和顏色轉(zhuǎn)換染坯。
  • CAScrollLayer

    • 顯示可滾動(dòng)內(nèi)容大于其自己的邊界的圖層均芽。
  • CATiledLayer

    • 異步提供圖層內(nèi)容的一個(gè)圖層,可能在多個(gè)細(xì)節(jié)級(jí)別緩存单鹿。
  • CATransformLayer

    • CATransformLayer對(duì)象用于創(chuàng)建真正的3D圖層層次結(jié)構(gòu)掀宋,而不是其他CALayer類使用的扁平化層次呈現(xiàn)模型。

8. Synchronizing Drawing to the Refresh Rate of the Display

  • CADisplayLink

    • 一個(gè)定時(shí)器對(duì)象仲锄,允許應(yīng)用程序?qū)⑵淅L圖同步到顯示器的刷新率劲妙。

9. Rendering Using Low-Level Graphics APIs

  • CAEAGLLayer

    • 支持在iOS和tvOS應(yīng)用程序中繪制OpenGL內(nèi)容的圖層。
  • CAMetalLayer

    • 一個(gè)管理金屬繪圖池的圖層儒喊。
  • CAMetalDrawable

    • Metal可以呈現(xiàn)或?qū)懭氲目娠@示資源镣奋。
  • CAOpenGLLayer

    • CAOpenGLLayer提供了適合于渲染OpenGL內(nèi)容的圖層。
  • CARenderer

    • 一個(gè)允許應(yīng)用程序?qū)訕滗秩镜?code>Core OpenGL(CGL)上下文中的層怀愧。

10. Remote Display of Layer Content

11. Reference

12. Extended Types

后記

未完妻柒,待續(xù)~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市耘分,隨后出現(xiàn)的幾起案子举塔,更是在濱河造成了極大的恐慌,老刑警劉巖求泰,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啤贩,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡拜秧,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門章郁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來枉氮,“玉大人,你說我怎么就攤上這事暖庄×奶妫” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵培廓,是天一觀的道長(zhǎng)惹悄。 經(jīng)常有香客問我,道長(zhǎng)肩钠,這世上最難降的妖魔是什么泣港? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮价匠,結(jié)果婚禮上当纱,老公的妹妹穿的比我還像新娘。我一直安慰自己踩窖,他們只是感情好坡氯,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著洋腮,像睡著了一般箫柳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上啥供,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天悯恍,我揣著相機(jī)與錄音,去河邊找鬼滤灯。 笑死坪稽,一個(gè)胖子當(dāng)著我的面吹牛曼玩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窒百,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼黍判,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了篙梢?” 一聲冷哼從身側(cè)響起顷帖,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎渤滞,沒想到半個(gè)月后贬墩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡妄呕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年陶舞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绪励。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡肿孵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出疏魏,到底是詐尸還是另有隱情停做,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布大莫,位于F島的核電站蛉腌,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏只厘。R本人自食惡果不足惜借跪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一盯仪、第九天 我趴在偏房一處隱蔽的房頂上張望卑惜。 院中可真熱鬧沟堡,春花似錦、人聲如沸介评。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)们陆。三九已至寒瓦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間坪仇,已是汗流浹背杂腰。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留椅文,地道東北人喂很。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓惜颇,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親少辣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子凌摄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

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