1. 程式人生 > >Core Animation 文檔翻譯 (第一篇)

Core Animation 文檔翻譯 (第一篇)

bounds 硬件加速 ans fun per family develop ica elf

      Core Animation 文檔翻譯(第一篇)

   2018-01-13 星期6

   前言:作為iOS 開發,官方文檔的閱讀是很有必要的,值此周末便寫下此文。作為iOS 實際經驗3年的開發,之前的應用之前有閱讀並實踐過經典的<iOS核心動畫高級技巧>,[其gitbook地址](https://zsisme.gitbooks.io/ios-/content/chapter10/custom-easing-functions.html),然總覺此書的翻譯版,對於目前的CoreAnimation 官方文檔的有所空缺,故生念,願有所補缺,便著手翻譯CoreAnimation,如有紕漏,望各位兄臺不吝賜教

https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40004514-CH1-SW1。

   

  關於 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 文檔翻譯 (第一篇)