Core Animation(核心動畫) 中KeyPath的取值

在Core Animation中隆嗅, 借助Core Animation 提供的幾個動畫類我們可以對一個Layer做各種酷炫的動畫仍劈,在實例 CAPropertyAnimation 的時候( CABasicAnimationCAKeyFrameAnimation均繼承自該類),通過構(gòu)造方法 convenience init(keyPath path: String?),需要傳入一個字符串塘揣。 那么問題來了弥激,這個參數(shù)到底可以取哪些值呢?

我們知道 CALayer 實現(xiàn)了 NSKeyValueCoding 協(xié)議释牺,因此我們可以使用 KVC 對 CALayer的實例中的屬性進(jìn)行取值和賦值萝衩,而在 Core Animation 提供的幾個動畫類影響的對象便是 CALayer的實例,我們可以推測在 CAPropertyAnimation 類中構(gòu)造方法 convenience init(keyPath path: String?) 的keyPath參數(shù)的取值 應(yīng)該是 CALayer 中的屬性没咙。 帶著這個推測猩谊,參考蘋果的官方文檔,筆者把可以用作keyPath的值列舉如下祭刚。

一牌捷、可動畫屬性

1. 幾何屬性 (Geometry Properties)

Field Key Path Remark En Description
transform.rotation.x 按x軸旋轉(zhuǎn)的弧度 Set to an NSNumber object whose value is the rotation, in radians, in the x axis.
transform.rotation.y 按y軸旋轉(zhuǎn)的弧度 Set to an NSNumber object whose value is the rotation, in radians, in the y axis.
transform.rotation.z 按z軸旋轉(zhuǎn)的弧度 Set to an NSNumber object whose value is the rotation, in radians, in the z axis.
transform.rotation 按z軸旋轉(zhuǎn)的弧度, 和transform.rotation.z效果一樣 Set to an NSNumber object whose value is the rotation, in radians, in the z axis. This field is identical to setting the rotation.z field.
transform.scale.x 在x軸按比例放大縮小 Set to an NSNumber object whose value is the scale factor for the x axis.
transform.scale.y 在x軸按比例放大縮小 Set to an NSNumber object whose value is the scale factor for the y axis.
transform.scale.z 在z軸按比例放大縮小 Set to an NSNumber object whose value is the scale factor for the z axis.
transform.scale 按比例放大縮小 Set to an NSNumber object whose value is the average of all three scale factors.
transform.translation.x 沿x軸平移 Set to an NSNumber object whose value is the translation factor along the x axis.
transform.translation.y 沿y軸平移 Set to an NSNumber object whose value is the translation factor along the y axis.
transform.translation.z 沿z軸平移 Set to an NSNumber object whose value is the translation factor along the z axis.
transform.translation x,y 坐標(biāo)均發(fā)生改變 Set to an NSValue object containing an NSSize or CGSize data type. That data type indicates the amount to translate in the x and y axis.
transform CATransform3D 4*4矩陣
bounds layer大小
position layer位置
frame 不支持 frme 屬性 computed from the bounds and position and is NOT animatable
anchorPoint 錨點位置
cornerRadius 圓角大小
zPosition z軸位置

2.背景屬性 (Background Properties)

Field Key Path Remark En Description
backgroundColor 背景顏色

3.Layer內(nèi)容 (Layer Content)

Field Key Path Remark En Description
contents Layer內(nèi)容,呈現(xiàn)在背景顏色之上
contentsRect The rectangle, in the unit coordinate space, that defines the portion of the layer’s contents that should be used.
masksToBounds setting the layer’s masksToBounds property to YES does cause the layer to clip to its corner radius

4.子Layer內(nèi)容 (Sublayers Content)

Field Key Path Remark En Description
sublayers 子Layer數(shù)組
sublayerTransform 子Layer的Transform Specifies the transform to apply to sublayers when rendering.

5.邊界屬性 (Border Attributes)

Field Key Path Remark En Description
borderColor
borderWidth

6.陰影屬性 (Shadow Properties)

Field Key Path Remark En Description
shadowColor 陰影顏色
shadowOffset 陰影偏移距離
shadowOpacity 陰影透明度
shadowRadius 陰影圓角
shadowPath 陰影路徑

7.透明度 (Opacity Property)

Field Key Path Remark En Description
opacity 透明度
hiden

8.遮罩 (Mask Properties)

Field Key Path Remark En Description
mask

9.ShapeLayer屬性 (ShapeLayer)

Field Key Path Remark En Description
fillColor
strokeColor
strokeStart 從無到有
strokeEnd 從有到無
lineWidth 路徑的線寬
miterLimit 相交長度的最大值
lineDashPhase 虛線樣式

二袁梗、注意

這里特別需要注意的是 layer的 frame 是不支持動畫的宜鸯,我們可以通過改變position和````bounds``` 變通實現(xiàn)

三、參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末遮怜,一起剝皮案震驚了整個濱河市淋袖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锯梁,老刑警劉巖即碗,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異陌凳,居然都是意外死亡剥懒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門合敦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來初橘,“玉大人,你說我怎么就攤上這事充岛”i埽” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵崔梗,是天一觀的道長夜只。 經(jīng)常有香客問我,道長蒜魄,這世上最難降的妖魔是什么扔亥? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任场躯,我火速辦了婚禮,結(jié)果婚禮上旅挤,老公的妹妹穿的比我還像新娘踢关。我一直安慰自己,他們只是感情好谦铃,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布耘成。 她就那樣靜靜地躺著,像睡著了一般驹闰。 火紅的嫁衣襯著肌膚如雪瘪菌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天嘹朗,我揣著相機與錄音师妙,去河邊找鬼。 笑死屹培,一個胖子當(dāng)著我的面吹牛默穴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播褪秀,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼蓄诽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了媒吗?” 一聲冷哼從身側(cè)響起仑氛,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎闸英,沒想到半個月后锯岖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡甫何,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年出吹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辙喂。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡捶牢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出巍耗,到底是詐尸還是另有隱情秋麸,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布芍锦,位于F島的核電站竹勉,受9級特大地震影響飞盆,放射性物質(zhì)發(fā)生泄漏娄琉。R本人自食惡果不足惜次乓,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孽水。 院中可真熱鬧票腰,春花似錦、人聲如沸女气。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炼鞠。三九已至缘滥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谒主,已是汗流浹背朝扼。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留霎肯,地道東北人擎颖。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像观游,于是被迫代替她去往敵國和親搂捧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

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

  • 在iOS中隨處都可以看到絢麗的動畫效果懂缕,實現(xiàn)這些動畫的過程并不復(fù)雜允跑,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,465評論 6 30
  • 核心動畫(Core Animation)一提佣、Core animation簡單介紹 1.Core Animatio...
    北辰青閱讀 999評論 0 1
  • 說明:此文僅為筆記吮蛹,是本人根據(jù)參考他人自己總結(jié)的一些東西,查閱原文請戳這里:iOS動畫篇:核心動畫 一.簡介 1....
    林大鵬閱讀 2,060評論 2 27
  • Core Animation Core Animation拌屏,中文翻譯為核心動畫潮针,它是一組非常強大的動畫處理API,...
    45b645c5912e閱讀 3,016評論 0 21
  • 在iOS中隨處都可以看到絢麗的動畫效果倚喂,實現(xiàn)這些動畫的過程并不復(fù)雜每篷,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,096評論 5 13