Core Animation 是 iOS 和 OS X 平臺上的圖形渲染和動畫的基礎庫,能夠完成App中的各類是以爲動畫。大多數須要繪製框架的動畫的工做在Core Animation中已經實現,使用者只須要配置一些動畫參數(諸如起始點)並通知 Core Animation 開始便可,Core Animation 完成剩餘的,把實際的繪製工做傳遞給圖形卡來加速渲染。圖形卡自動加速平滑動畫和高框架率,減輕了CPU的負擔,使app不會被拖慢。html
在iOS app 的開發過程當中,即便你不瞭解Core Animation,你也一直在使用它。若是你開發 OS X app,你能夠付出很小的精力來有效利用它。Core Animation 位於 UIKit/AppKit 框架之下,被緊密地集成進 Cocoa/Cocoa Touch 視圖工做流中。固然, Core Animation 也有擴展接口可以經過你的app視圖使用,可以使你更細粒度的控制app的動畫。
ios
也許你歷來不直接使用 Core Animation,可是當你使用時你須要理解它在app的基礎框架中扮演的角色。架構
Core Animation 自己不是一個繪圖系統,它是一個基礎框架,能夠在硬件上合成和操控你的app內容。layer 對象是這個框架的核心,你能夠用它管理和操做你的內容。layer 捕捉你的內容爲圖形硬件能夠容易操控的位圖。多數的app把layer當作管理視圖內容的方式,可是你也能夠依據本身的需求專門建立 layer 。app
相關章節: Core Animation Basics, Setting Up Layer Objects框架
你用 Core Animation 建立的動畫大多數都牽涉到 layer 屬性的修改。好比視圖,layer 對象有 bounds, position, opacity, transform 和許多其餘的可視屬性能夠修改。改變這些屬性值會隱式地建立動畫,所以 layer 的動畫實際上是屬性值的變化。你也能夠明確的改變某個屬性值來控制想要的動畫結果。ide
相關章節: Animating Layer Content, Advanced Animation tricks,Layer Style Property Animations, Animatable Properties動畫
Layer 能夠層次結構放置建立父子關係。這種放置關係和視圖(View)很像,不一樣的放置會影響視覺內容。依附於視圖的 layer 層次結構集可以映射出相關視圖的層次架構。你能夠在本身的視圖中單首創建 layer 放置到現有的 layer 層次中,以便達到擴展視覺內容的效果。ui
相關章節: Building a Layer Hirarchy3d
隱式地 layer 動畫經過 action 對象 得到,它們是經過預約義類實現的普通對象。Core Animation 用 action 對象實現 layers 相關的通常動畫。你能夠穿件本身的 action 對象來實現自定義動畫,或者也可使用它們實現其餘的行爲類型,而後把這個 action 的對象賦值給 layer 的屬性。當對應的屬性值改變時, Core Animation 檢索你的 action 對象,並通知它作這個 action。orm