圖層動(dòng)畫(huà)很像視圖動(dòng)畫(huà);你只需在某段時(shí)間內(nèi),在開(kāi)始和結(jié)束值之間對(duì)屬性進(jìn)行動(dòng)畫(huà)處理政冻,然后讓Core Animation處理中間的渲染枚抵。
然而,層具有比視圖更多的可動(dòng)畫(huà)屬性;當(dāng)涉及到你的設(shè)計(jì)效果時(shí)明场,這給了你很多選擇和靈活性;許多CALayer子類(lèi)都添加了可以在動(dòng)畫(huà)中使用的屬性汽摹。
本章將向你介紹CALayer和Core Animation的基礎(chǔ)知識(shí)。你會(huì)有一種在圖層中使用動(dòng)畫(huà)的感覺(jué);你將學(xué)習(xí)如何移動(dòng)圖層苦锨,將它們淡入淡出逼泣,并創(chuàng)建與你使用UIKit創(chuàng)建的動(dòng)畫(huà)類(lèi)似的動(dòng)畫(huà)趴泌。
可做動(dòng)畫(huà)的屬性
CALayer中的一些可動(dòng)畫(huà)屬性直接對(duì)應(yīng)于前面章節(jié)中使用的視圖屬性,如框架圾旨、位置和不透明度踱讨。在本章中,你會(huì)在圖層動(dòng)畫(huà)中使用熟悉的和新的動(dòng)畫(huà)屬性砍的。
你將重新創(chuàng)建一些先前的視圖動(dòng)畫(huà)痹筛,但是這次使用圖層動(dòng)畫(huà),這樣你就可以對(duì)比這兩個(gè)動(dòng)畫(huà)的不同了廓鞠。
Position and size 位置和大小
對(duì)層的位置帚稠、大小或轉(zhuǎn)換進(jìn)行動(dòng)畫(huà)處理同樣會(huì)影響該層中包含的任何視圖,就像你直接對(duì)視圖本身進(jìn)行動(dòng)畫(huà)一樣床佳。
?bounds:使圖層的邊框有動(dòng)畫(huà)效果滋早。
?position:修改動(dòng)畫(huà)層在其母層內(nèi)的位置。你可以設(shè)置動(dòng)畫(huà)的位置砌们。如果你想控制只在一個(gè)軸上的運(yùn)動(dòng)杆麸,你可以修改x或y的位置。
?transform:修改圖層浪感,移動(dòng)昔头,縮放,旋轉(zhuǎn)圖層影兽。你甚至可以在三維空間中對(duì)層進(jìn)行動(dòng)畫(huà)處理揭斧,這是單憑視圖是無(wú)法做到的。
Border
你可以很容易地動(dòng)畫(huà)顯示層的邊界峻堰,改變它的顏色讹开,寬度和角的半徑:
?borderColor:修改這個(gè)會(huì)改變邊色。
?borderWidth:修改此設(shè)置會(huì)增加或縮小邊框的寬度捐名。
?cornerRadius:修改它會(huì)改變圖層圓角的半徑旦万。
Shadow 陰影
你可以使圖層陰影的各個(gè)面都有動(dòng)畫(huà)效果:
·shadowOffset:修改它,使陰影看起來(lái)更接近或更遠(yuǎn)離圖層桐筏。
·shadowOpacity:修改它纸型,使陰影淡入或淡出。
·shadowPath:修改它以改變圖層的陰影形狀梅忌。你可以創(chuàng)建不同的3D效果,使你的圖層看起來(lái)像漂浮在不同的陰影形狀和位置上除破。
?shadowRadius:修改這個(gè)來(lái)控制陰影的模糊;這在模擬視圖朝向或遠(yuǎn)離投影的表面移動(dòng)時(shí)特別有用牧氮。
Contents
最后,有一些屬性用來(lái)控制層的內(nèi)容如何呈現(xiàn):
?contents:修改此內(nèi)容瑰枫,將原始TIFF或PNG數(shù)據(jù)作為圖層內(nèi)容踱葛。
?mask:你可以用蒙版層可見(jiàn)內(nèi)容的形狀或圖像丹莲。
?opacity:修改它以使圖層內(nèi)容的透明度有動(dòng)畫(huà)效果。
請(qǐng)記住尸诽,這只是你可以動(dòng)畫(huà)的部分屬性列表;CALayer的子類(lèi)通常還有其他屬性可以進(jìn)行動(dòng)畫(huà)處理甥材。
上面列出的屬性足以讓你開(kāi)始使用層動(dòng)畫(huà)了。