2017年2月12日 星期日

iOS筆記:Core Animation

Core Animation:

Core Animation 是在 iOS 上負責一般 UI 繪圖與動畫的 framework. 要注意的是, Core Animation是直接作用在CALayer上, 而非UIView. 至於一個 view 呈現出來的外觀,在 iOS 上,UIView 的外觀呈現,也都是由 Core Animation 實作。我們看到的 UIView 的樣子,其實是裡頭的 CALayer 的樣子。

每個 UIView,都是屬於自己專屬的 CALayer 物件的 delegate,當我們要重繪某個 view 的內容時,其實是叫 CALayer 重繪,重繪 CALayer 時會呼叫到 CALayer 的-drawInContext:,在這個 method 中,CALayer 可以自己決定怎麼繪製內容,或是去問 delegate 該怎麼畫,而去問了 CALayer delegate 的 -drawLayer:inContext:。

在 UIView 的 -drawLayer:inContext: 的實作中,便呼叫了 drawRect:,因此, drawRect: 繪製的內容,放到 CALayer 上。

範例可以參考reference!

Reference:
1. https://zonble.gitbooks.io/kkbox-ios-dev/content/core_animation/index.html
2. http://www.bkjia.com/IOSjc/1120723.html
3. http://www.cocoachina.com/ios/20170124/18617.html
4. http://charsdavy.github.io/2016/07/29/animation-caanimation/