一.圖層
1)圖層是什么
(1)圖層的定義
圖層是管理app內(nèi)容的數(shù)據(jù)對(duì)象慌盯。圖層的內(nèi)容由包含可視數(shù)據(jù)的位圖構(gòu)成秉氧。
(2)圖層的類型
類別 | 用途 |
---|---|
CAShaperLayer | 用于繪制三次貝塞爾曲線玉工。CAShaperLayer對(duì)繪制基于路徑的形狀非常有幫助舔腾。因?yàn)镃AShaperLayer總是生成一個(gè)最新的路徑琼稻。而如果將路徑畫在圖層儲(chǔ)備中粱腻,一旦圖層被縮放,形狀就變形了售睹。 |
CATransformLayer | 用于渲染一個(gè)真3D的圖層層級(jí)。而不是由其他圖層類實(shí)現(xiàn)的2D圖層層級(jí)惭笑。 |
CAEmitterLayer | 用于實(shí)現(xiàn)基于Core Animation粒子發(fā)射系統(tǒng)侣姆。發(fā)射器層對(duì)象控制粒子的生成和起源 |
CAGradientLayer | 用于繪制一個(gè)顏色漸變填充圖層的形狀(所有圓角矩形邊界內(nèi)的部分) |
CAEAGLLayer/CAOpenGLLayer | 用于設(shè)置需要使用OpenGL ES(iOS)或OpenGL(OS X)繪制的內(nèi)容與內(nèi)容儲(chǔ)備。 |
CAReplicatorLayer | 當(dāng)你想自動(dòng)生成一個(gè)或多個(gè)子層的拷貝沉噩。復(fù)制器為你生成拷貝并使用你指定的屬性值以修改復(fù)制品的外觀和屬性。 |
CAScrollLayer | 用于管理由多個(gè)子區(qū)域組成的大的可滾動(dòng)區(qū)域 |
CATextLayer | 用于渲染一個(gè)無格式或?qū)傩晕谋咀址?/td> |
QCCompositionLayer | 用于渲染一個(gè)Quartz組件元素(僅在OS X中有效) |
(3)圖層和視圖的關(guān)系
二.動(dòng)畫
1)動(dòng)畫的種類
2)核心動(dòng)畫是什么
(1)核心動(dòng)畫的定義
它是一個(gè)負(fù)責(zé)在硬件上合成和操縱應(yīng)用內(nèi)容的基礎(chǔ)構(gòu)件柱蟀。Core Animation的核心是圖層對(duì)象川蒙,圖層對(duì)象用于管理和操控你的應(yīng)用內(nèi)容。圖層將捕獲的內(nèi)容放到一副位圖中长已,圖形硬件能夠非常容易的操控你的位圖畜眨。在大部分應(yīng)用中昼牛,圖層被作為一種管理視圖內(nèi)容的方式,但是你也可以創(chuàng)建標(biāo)準(zhǔn)的圖層康聂,這取決于你自身的需要贰健。
(2)核心動(dòng)畫的分類(1:1.1,1.1.1恬汁,1.2伶椿;2;3)
補(bǔ)充一下氓侧,CABasicAnimation還有子類CASpringAnimation脊另,彈簧動(dòng)畫。屬性動(dòng)畫貴在屬性约巷,CALayer的屬性偎痛,對(duì)應(yīng)于不同的CALayer,可以針對(duì)其屬性設(shè)置變化独郎,如CAShaperLayer踩麦,可以設(shè)置strokeEnd屬性,做出畫筆畫圖的效果氓癌。
3)使用核心動(dòng)畫和UIKit動(dòng)畫須知
[UIView animate]的方法里只能對(duì)UIView的屬性進(jìn)行動(dòng)畫谓谦,對(duì)于layer的屬性是無效的。比如你在這里想讓self.AnimateView.layer.cornerRadius = 50.0; 是沒有意義的顽铸。必須使用CoreAnimation茁计。
選擇使用動(dòng)畫樣式需要注意:UIView動(dòng)畫優(yōu)先于CoreAnimation動(dòng)畫
區(qū)分不同Anim的方法:1、對(duì)于加在一個(gè)全局變量上的anima谓松,比如例子里的self.AnimateView 星压,這是一個(gè)全局變量,所以我們?cè)谶@里可以通過[self.AnimateView.layer animationForKey:]根據(jù)動(dòng)畫不同的key來區(qū)分2鬼譬、然而對(duì)于一個(gè)非全局的變量娜膘,比如demo中的progressLayer,可以用KVO:[pathAnimation setValue:@"strokeEndAnimation" forKey:@"animationName"];注意這個(gè)animationName是我們自己設(shè)定的优质。
寫一個(gè)動(dòng)畫比較準(zhǔn)確的順序:先改變model layer的屬性竣贪,再應(yīng)用動(dòng)畫。即先賦值給目標(biāo)對(duì)象的屬性巩螃,然后再添加動(dòng)畫演怎。