iOS核心動(dòng)畫解析1

? ? ? 在iOS中所謂的核心動(dòng)畫在表面上理解是視圖的在二維或三維空間上位置,大小,角度等方面的變化, 在視覺效果上給用戶一種賞心悅目的感覺, 在介紹核心動(dòng)畫之前我們先了解一下圖層和視圖的關(guān)系.

視圖和圖層

一個(gè)視圖就是在屏幕上顯示的一個(gè)矩形塊(圖片,視頻等),他能夠攔截類似于觸摸手勢等用戶的輸入,視圖在層級(jí)關(guān)系中可以相互嵌套,其中一個(gè)視圖可以管理它的所有位置.

CALayer

CALayer類和UIView很形似,在CALayer上也可以添加(圖片,視頻等).其中UIView和CALayer最大的區(qū)別CALayer不處理用戶的交互.UIView和CALayer是一種相互平行的關(guān)系.

例如:當(dāng)你在CALayer上添加一個(gè)image(圖片時(shí))你會(huì)發(fā)現(xiàn)與你之前在UIView上添加的圖片,兩者在位置上會(huì)有差距, ?在Xcode中你可以觀察一下圖層視圖, 如果在CALayer下添加圖片其圖片的位置會(huì)與圖層在同一界面, 如果你在UIView上面添加圖片會(huì)發(fā)現(xiàn)圖片并不會(huì)與view在同一視圖層,示例如下

那么既然UIView上面能放圖片,視頻.那么為什么開發(fā)者還要生成CALayer這個(gè)類呢,CALayer類有很多輔助的功能:

(1). 陰影, 圓角, 帶顏色的邊框

(2). 3D變化

(3). 非矩形范圍

(4). 透明遮罩

(5). 多級(jí)非線性動(dòng)畫

在CALayer中有很多屬性可以改變圖片的動(dòng)畫,其屬性有:

CGRect bounds

CGPoint position ?用來設(shè)置CALayer在父層中的位置

以父層的左上角為原點(diǎn)(0, 0, 0)三維 或 (0, 0)二維

CGFloat zPosition 用來設(shè)置CALayer在父層中的位置

以父層的左上角為原點(diǎn)(0)

CGPoint anchorPoint ?稱為“定位點(diǎn)”悠鞍、“錨點(diǎn)”

決定著CALayer身上的哪個(gè)點(diǎn)會(huì)在position屬性所指的位置

以自己的左上角為原點(diǎn)(0, 0)

它的x脚线、y取值范圍都是0~1刀脏,默認(rèn)值為(0.5, 0.5)

CGFloat anchorPointZ 在3D中在Z中的錨點(diǎn)

BOOL hidden 是否隱藏視圖

BOOL masksToBounds 是否切割該視圖上面的余下的部分 通常與cornerRadius搭配使用

這么多的屬性,一一進(jìn)行嘗試,就會(huì)發(fā)現(xiàn)其中神奇之處,一些效果在View層面是做不出來的.下面我將介紹幾個(gè)重要的屬性

屬性:contents

CALayer 有一個(gè)屬性叫做contents帅韧,這個(gè)屬性的類型被定義為id察皇,意味著它可以是任何類型的對(duì)象。在這種情況下像寒,你可以給contents屬性賦任何值丁鹉。但是,在實(shí)踐中召锈,如果你給contents賦的不是CGImage旁振,那么你得到的圖層將是空白的。

它之所以被定義為id類型,是因?yàn)樵贛ac OS系統(tǒng)上规求,這個(gè)屬性對(duì)CGImage和NSImage類型的值都起作用筐付。如果你試圖在iOS平臺(tái)上將UIImage的值賦給它卵惦,只能得到一個(gè)空白的圖層阻肿。

事實(shí)上,你真正要賦值的類型應(yīng)該是CGImageRef沮尿,它是一個(gè)指向CGImage結(jié)構(gòu)的指針丛塌。UIImage有一個(gè)CGImage屬性,它返回一個(gè)"CGImageRef",如果你想把這個(gè)值直接賦值給CALayer的contents畜疾,那你將會(huì)得到一個(gè)編譯錯(cuò)誤赴邻。

盡管Core Foundation類型跟Cocoa對(duì)象在運(yùn)行時(shí)貌似很像(被稱作toll-free bridging),它們并不是類型兼容的啡捶,不過你可以通過bridged關(guān)鍵字轉(zhuǎn)換姥敛。如果要給圖層的寄宿圖賦值,你可以按照以下這個(gè)方法:

如果你沒有使用ARC瞎暑,你就不需要__bridge這部分彤敛。

讓我們來繼續(xù)修改我們?cè)诘谝徽滦陆ǖ墓こ蹋员隳軌蛘故疽粡垐D片而不僅僅是一個(gè)背景色了赌。我們已經(jīng)用代碼的方式建立一個(gè)圖層墨榄,那我們就不需要額外的圖層了。那么我們就直接把layerView的宿主圖層的contents屬性設(shè)置成圖片勿她。

清單2.1 更新后的代碼袄秩。



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市逢并,隨后出現(xiàn)的幾起案子之剧,更是在濱河造成了極大的恐慌,老刑警劉巖砍聊,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件背稼,死亡現(xiàn)場離奇詭異,居然都是意外死亡辩恼,警方通過查閱死者的電腦和手機(jī)雇庙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灶伊,“玉大人疆前,你說我怎么就攤上這事∑溉” “怎么了竹椒?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長米辐。 經(jīng)常有香客問我胸完,道長书释,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任赊窥,我火速辦了婚禮爆惧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锨能。我一直安慰自己扯再,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布址遇。 她就那樣靜靜地躺著熄阻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪倔约。 梳的紋絲不亂的頭發(fā)上秃殉,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死针姿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的巧颈。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼袖扛,長吁一口氣:“原來是場噩夢啊……” “哼砸泛!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起蛆封,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤唇礁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后惨篱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盏筐,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年砸讳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了琢融。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡簿寂,死狀恐怖漾抬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情常遂,我是刑警寧澤纳令,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響平绩,放射性物質(zhì)發(fā)生泄漏圈匆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一捏雌、第九天 我趴在偏房一處隱蔽的房頂上張望跃赚。 院中可真熱鬧,春花似錦腹忽、人聲如沸来累。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至葫录,卻和暖如春着裹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背米同。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工骇扇, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人面粮。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓少孝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親熬苍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子稍走,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

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

  • 在iOS中隨處都可以看到絢麗的動(dòng)畫效果,實(shí)現(xiàn)這些動(dòng)畫的過程并不復(fù)雜柴底,今天將帶大家一窺ios動(dòng)畫全貌婿脸。在這里你可以看...
    每天刷兩次牙閱讀 8,469評(píng)論 6 30
  • 在iOS中隨處都可以看到絢麗的動(dòng)畫效果,實(shí)現(xiàn)這些動(dòng)畫的過程并不復(fù)雜柄驻,今天將帶大家一窺iOS動(dòng)畫全貌狐树。在這里你可以看...
    F麥子閱讀 5,101評(píng)論 5 13
  • 本文轉(zhuǎn)載自:http://www.cocoachina.com/ios/20150104/10814.html ...
    idiot_lin閱讀 1,560評(píng)論 0 11
  • Core Animation其實(shí)是一個(gè)令人誤解的命名。你可能認(rèn)為它只是用來做動(dòng)畫的鸿脓,但實(shí)際上它是從一個(gè)叫做Laye...
    小貓仔閱讀 3,689評(píng)論 1 4
  • ** 圖層樹抑钟、寄宿圖以及圖層幾何學(xué)(一)圖層的樹狀結(jié)構(gòu)**巨妖有圖層,洋蔥也有圖層野哭,你有嗎在塔?我們都有圖層 -...
    樹根曰閱讀 826評(píng)論 0 8