Core Animation 是個(gè)復(fù)合引擎稠曼,它的職責(zé)是盡可能的組合屏幕上的不同的可視內(nèi)容(圖層數(shù))。
這個(gè)內(nèi)容是被分解成獨(dú)立的圖層,存儲(chǔ)再一個(gè)叫做圖層樹的體系中芋忿。
這個(gè)樹形成了UIKit以及再iOS應(yīng)用中你所見到的一切內(nèi)容烫止。
CALayer功能:?
陰影蒋荚,圓角,帶顏色的邊框
3D變換
非矩形范圍
透明遮罩
多級(jí)非線性動(dòng)畫
CALayer Content屬性
layer.content? 這個(gè)屬性的類型被定義為id馆蠕,意味著它可以是任何類型的對(duì)象】
layer.contents =(__bridge id)image.CGImage;
contentGravity?
類似UIView中UIViewContentMode屬性
contentsScale?
屬性定義了寄宿圖的像素尺寸和視圖大小的比例期升,默認(rèn)情況下它是一個(gè)值為1.0的浮點(diǎn)數(shù)
如果只是單純地想放大圖層的contents圖片,你可以通過使用圖層的transform和affineTransform屬性來達(dá)到這個(gè)目的
self.layerView.layer.contentsScale = image.scale;
maskToBounds
UIView有一個(gè)叫做clipsToBounds的屬性可以用來決定是否顯示超出邊界的內(nèi)容互躬,CALayer對(duì)應(yīng)的屬性叫做masksToBounds
contentsRect?
允許在圖層邊框里顯示寄宿圖的一個(gè)子域播赁。這涉及到圖片是如何顯示和拉伸
contentsCenter
是一個(gè)CGRect,它定義了一個(gè)固定的邊框和一個(gè)在圖層上可拉伸的區(qū)域
?記住當(dāng)對(duì)圖層做變換的時(shí)候吼渡,比如旋轉(zhuǎn)或者縮放行拢,frame實(shí)際上代表了覆蓋在圖層旋轉(zhuǎn)之后的整個(gè)軸對(duì)齊的矩形區(qū)域,也就是說frame的寬高可能和bounds的寬高不再一致了
CGAffineTransform用于圖層旋轉(zhuǎn)诞吱,擺放或者扭曲
CATransform3D將扁平物體轉(zhuǎn)換成三維空間