Core Animation 文檔翻譯 (第一篇)
Core Animation 文檔翻譯(第一篇)
2018-01-13 星期6
前言:作為iOS 開發,官方文檔的閱讀是很有必要的,值此周末便寫下此文。作為iOS 實際經驗3年的開發,之前的應用之前有閱讀並實踐過經典的<iOS核心動畫高級技巧>,[其gitbook地址](https://zsisme.gitbooks.io/ios-/content/chapter10/custom-easing-functions.html),然總覺此書的翻譯版,對於目前的CoreAnimation 官方文檔的有所空缺,故生念,願有所補缺,便著手翻譯CoreAnimation,如有紕漏,望各位兄臺不吝賜教
關於 Core Animation(以下翻譯為:核心動畫)
核心動畫是可用於在iOS和OS X平臺上實現APP 內部Views和其他可視化元素動畫效果的圖形渲染和圖形動畫的基礎工具;借助核心動畫,它幫我們完成了繪制動畫中每一幀的大部分工作。我們需要做的僅僅是去配置少量的動畫參數(例如開始和結束的點),並啟動核心動畫,核心動畫完成剩余的工作,將大部分實際繪圖工作交給 內部繪圖硬件加速渲染。這種自動繪圖加速在不加重CPU的負載和減緩我們APP運行的同時達到高幀率和流暢的動畫效果。
如果你正在開發iOS APP,你將無時無刻的使用核心動畫,不管你是否意識到,如果你正在開發OS XAPP,你也能通過極小的工作量 充分使用核心動畫。核心動畫 包含在AppKit和UIKit中,並被緊緊的集合在Cocoa 和Cocoa Touch 中View 的工作原理流程中。當然,核心動畫也暴露有關於 View 的擴展功能的接口,這些接口API 給出許多詳細的控制關於APP動畫效果。
初窺
你可能永遠不需要直接使用核心動畫,但是我們需要理解核心動畫 扮演了我們APP一部分基礎設施的角色。
核心動畫管理我們APP的顯示內容
核心動畫本身不是繪制系統,他就是一個作為 合成並操作APP 顯示內容的基礎工具。這個基礎工具的核心便是Layer 對象,Layer 管理 並操控 顯示內容,Layer 捕獲顯示內容放進 能夠很容易被繪圖硬件操作解析的bitmap中。在大部分APP 中,Layer 被作為View 的屬性 管理顯示內容,但是如果有需要的話,我們可以創建單獨的Layer。
《相關章節:Core Animation Basics, Setting Up Layer Objects,》
Layer 的修改會觸發動畫
大部分使用核心動畫創建的動畫涉及到Layer的屬性修改。例如View 和Layer對象有bounds ,position ,opacity,transform,和許其他可修改的視覺導向的屬性, 改變這些屬性的值將觸發Layer動畫發生從舊值到新值的隱式動畫。當我們想要去控制更多的動畫效果時候,我們也可以調整這些屬性做顯式動畫。
《相關章節: Animating Layer Content, Advanced Animation Tricks, Layer Style Property Animations, Animatable Properties》
Layers 的層次化
Layers 之間建立父子關系來層次化管理。這種Layers的層次化管理方式將會像Views層次化管理一樣,會影響Layers的顯示內容。 作為View 的屬性的Layers的層次,能夠反映出Layers對應的View的層次。我們也可以將單獨創建的Layer 添加到Layer 層次中,以便擴充APP的顯示內容,而不僅是使用Views。
《相關章節:Building a Layer Hierarchy 》
Actions 使我們改變Layer的默認動畫行為
隱式Layer 動畫是通過使用 Action 對象達到的,Action 是包含預先定義的動畫效果的對象類型。核心動畫使用Action 對象執行和Layer 關聯的 默認動畫集合。我們也可以創建自己的Action對象實現自定義的動畫、實現其他種類的動效。我們關聯自定義的Action 對象到一個Layer的屬性,當那個屬性變化的時候,核心動畫會取出我們的Action對象並執行這個Action.
《相關章節: Changing a Layer’s Default Behavior》
如何使用這個文檔
這個文檔是為了那些想控制他們APP的動畫,或者想要使用Layers 去提升繪制性能的人而寫。這個文檔也提供基於iOS 和OS X平臺內Layer 和View之間的相互關系。Layer 和View 之間的相互關系在iOS和OS X具有一定的差異,並且理解這些差異對於創建更高效的動畫性能很重要。
所需預備知識
你應該已經理解你所開發的目標平臺的View的結構,並熟悉如何創建基於View的動畫。如果你沒有這些基礎知識,你應該讀以下文檔:
1.對於iOS APP,了解View的架構描述通過 View Programming Guide for iOS.
2.對於OS X APP,了解View的架構描述通過 View Programming Guide.
註:後續我將會有新的翻譯更新,覺得不錯的朋友可以暫等下
Core Animation 文檔翻譯 (第一篇)