Core Animation,不同于UIView動畫那么簡單快捷询吴。但可高效的控制動畫效果,比如停止動畫亮元,控制動畫節(jié)奏猛计。
在開始之前,先做一些基本了解爆捞。
它屬于CoreGraphics框架奉瘤,在CALayer層操作。
是不是有些恍然大悟了呢煮甥。
總結一下CALayer和UIView有什么區(qū)別呢盗温?
UIView:用戶交互,界面展示
真正繪制界面的類是layer
CALayer屬于QuartzCore框架(跨平臺的).
mac os:交互上面:APPKIT成肘,通過鼠標鍵盤交互卖局,NSview
iOS:觸摸,UIKit双霍,UIVIew
相同點:同一種繪制方式(CALayer)
不同點:不同交互方式
UIView封裝了layer
frame吼驶,background:layer對應的屬性
<修改backgroundColor其實就是修改對應的layer的backgroundColor,模型層(存儲數(shù)據(jù)和讀鹊晟贰)>
總結:UIView負責處理用戶交互蟹演,layer負責繪制內容。我們訪問和設置的UIView的這些負責顯示的屬性實際就是訪問和設置layer對應的屬性顷蟀,
只不過UIView把他封裝了起來酒请。
補充一下CALayer的層級關系:
layer的層次結構Layer Tree,這種層次結構分為以下三種:
Model Tree :也就是我們通常所說的layer,也可以通過modelLayer獲取
Presentation Tree:呈現(xiàn)出來的layer鸣个,也就是我們做動畫時你看到的那個layer羞反,可以通過layer.presentationLayer獲得。
Render Tree :私有囤萤,無法訪問昼窗。主要是對Presentation Tree數(shù)據(jù)進行渲染,并且不會阻塞線程涛舍。
核心動畫的幾個類:
參考:
http://www.cocoachina.com/ios/20170623/19612.html
自定義轉場動畫