UI篇-Layer幾個(gè)關(guān)鍵點(diǎn)補(bǔ)充

前言

強(qiáng)大的UIView是基于 CALayer實(shí)現(xiàn)的造烁,它的重要性不言而喻搞动,相信大家也都有自己的研究和理解,今天這片文章里的內(nèi)容是幾個(gè)關(guān)鍵點(diǎn)的補(bǔ)充驮履。

CALayer 和 UIView的關(guān)系

CALayer是Core Animation的基礎(chǔ),UIKit 相關(guān)內(nèi)容實(shí)現(xiàn)的基礎(chǔ)
簡(jiǎn)單來說鱼辙,View和Layer最大的區(qū)別就是View可以接受用戶輸入(例如觸摸)而Layer不可以,Layer單獨(dú)并不能呈現(xiàn)出任何可視的內(nèi)容玫镐,必須依托于View倒戏。Layer只是幾何上呈現(xiàn)給用戶的東西,它較為輕量恐似,通常采用Cache技術(shù)杜跷,對(duì)資源消耗也較小。

CALayer是什么矫夷?

摘自官網(wǎng)的一句話-Layers Provide the Basis for Drawing and Animations(Layers是繪圖和動(dòng)畫的基礎(chǔ))
Layer是在3D空間中的2D平面葛闷。Layer管理的幾何(例如rotate,transfrom)双藕,內(nèi)容(image等)淑趾,和可視屬性(backgroundColor,alpha)等信息忧陪。Layer主要通過管理bitmap來維護(hù)自己的狀態(tài)信息扣泊,從這一點(diǎn)上來說,Layer可以看作對(duì)象模型嘶摊,因?yàn)樗麄冎饕脕砉芾頂?shù)據(jù)旷赖。

Layer是基于bitmap的,它會(huì)捕獲View要呈現(xiàn)的內(nèi)容更卒,然后cache在一個(gè)bitmap中等孵,這個(gè)bitmap可以看作一個(gè)對(duì)象。這樣每次進(jìn)行操作蹂空,例如平移旋轉(zhuǎn)等俯萌,只是bitmap的矩陣運(yùn)算∩险恚基于Layer的動(dòng)畫過程如圖

由于基于Layer的繪制是處理靜態(tài)的Bitmap的咐熙,而bitmap的處理又是GPU所擅長(zhǎng)的,所以它的效率要比基于View繪制的高很多辨萍,因?yàn)榛赩iew繪制的每次都要進(jìn)行drawRect的調(diào)用重新繪制棋恼。

** Layer支持繼承返弹,支持添加Sublayer,支持對(duì)sublayer進(jìn)行層次調(diào)整**

常用的Layer子類

CAEmitterLayer  發(fā)射器層爪飘,用來控制粒子效果

CAGradientLayer  梯度層义起,顏色漸變

CAEAGLayer  用OpenGL ES繪制的層

CAReplicationLayer  用來自動(dòng)復(fù)制sublayer

CAScrollLayer  用來管理可滑動(dòng)的區(qū)域

CAShapeLayer   繪制立體的貝塞爾曲線

CATextLayer  可以繪制AttributeString

CATiledLayer用來管理一副可以被分割的大圖

CATransformLayer    用來渲染3D layer的層次結(jié)構(gòu)

管理Layer內(nèi)容的幾個(gè)函數(shù)

addSublayer:
insertSublayer:above:
insertSublayer:atIndex:
insertSublayer:below:
removeFromSuperlayer
replaceSublayer:with:

** anchorPoint和position**

和UIView不同,Layer主要由三個(gè)屬性來設(shè)置位置(極少用Frame):

bounds -  設(shè)置大小
anchorPoint -設(shè)置錨點(diǎn)(錨點(diǎn)對(duì)后續(xù)的layer動(dòng)畫有很大影響,默認(rèn)(0.5师崎,0.5))
position -  錨點(diǎn)在superLayer中的位置

contentGravity這個(gè)屬性默终。這個(gè)屬性決定了contents如何填充。

具體分為兩個(gè)方面犁罩,
方面一齐蔽,位置方面具體如圖


方面二,比例變換方面如圖

一些實(shí)例效果

彩色環(huán)狀進(jìn)度條
粒子動(dòng)畫
CATransform3D 是不是明顯發(fā)現(xiàn)藍(lán)色的3D層效果更強(qiáng)烈一些
CAReplicatorLayer.gif
CAReplicatorLayer.gif

上圖效果具體實(shí)現(xiàn)參考另一位作者文章

(未完待續(xù)......)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末床估,一起剝皮案震驚了整個(gè)濱河市含滴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌丐巫,老刑警劉巖谈况,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異鞋吉,居然都是意外死亡鸦做,警方通過查閱死者的電腦和手機(jī)励烦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門谓着,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坛掠,你說我怎么就攤上這事赊锚。” “怎么了屉栓?”我有些...
    開封第一講書人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵舷蒲,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我友多,道長(zhǎng)牲平,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任域滥,我火速辦了婚禮纵柿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘启绰。我一直安慰自己昂儒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開白布委可。 她就那樣靜靜地躺著渊跋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拾酝,一...
    開封第一講書人閱讀 49,829評(píng)論 1 290
  • 那天燕少,我揣著相機(jī)與錄音,去河邊找鬼微宝。 笑死棺亭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蟋软。 我是一名探鬼主播镶摘,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼岳守!你這毒婦竟也來了凄敢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤湿痢,失蹤者是張志新(化名)和其女友劉穎涝缝,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體譬重,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拒逮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了臀规。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片滩援。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖塔嬉,靈堂內(nèi)的尸體忽然破棺而出玩徊,到底是詐尸還是另有隱情,我是刑警寧澤谨究,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布恩袱,位于F島的核電站,受9級(jí)特大地震影響胶哲,放射性物質(zhì)發(fā)生泄漏畔塔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一鸯屿、第九天 我趴在偏房一處隱蔽的房頂上張望澈吨。 院中可真熱鬧,春花似錦碾盟、人聲如沸棚辽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽屈藐。三九已至榔组,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間联逻,已是汗流浹背搓扯。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留包归,地道東北人锨推。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像公壤,于是被迫代替她去往敵國(guó)和親换可。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載:http://www.reibang.com/p/32fcadd12108 每個(gè)UIView有一個(gè)伙伴稱為l...
    F麥子閱讀 6,170評(píng)論 0 13
  • 每個(gè)UIView有一個(gè)伙伴稱為layer厦幅,一個(gè)CALayer沾鳄。UIView實(shí)際上并沒有把自己畫到屏幕上;它繪制本身...
    shenzhenboy閱讀 3,091評(píng)論 0 17
  • >復(fù)雜的組織都是專門化的 >Catharine R. Stimpson 到目前為止,我們已經(jīng)探討過`CALayer...
    夜空下最亮的亮點(diǎn)閱讀 1,004評(píng)論 0 2
  • 空意瑜伽确憨,帶您一起來甩肉肉了译荞! 課時(shí)通知,2月6日休弃,星期一吞歼,下午6:30! 并不是你身處的環(huán)境決定了你是什么樣的人...
    BaBy谷子閱讀 205評(píng)論 0 0
  • 我又看到他了塔猾。這回他站起來了篙骡,拄著拐杖,一高一低地慢慢移動(dòng)桥帆。他背著黑包蓝谨,手里提著兩件東西恕齐,一個(gè)應(yīng)該是我給的袋子地来。他...
    云游的牧童閱讀 169評(píng)論 0 0