CABasicAnimation精講

轉載自:http://www.huangyibiao.com/archives/229


本教程寫了這個效果圖的demo,同時總結CABasicAnimation的使用方法。

image

看完gif動畫完,看到了什麼?平移、旋轉、縮放、閃爍、路徑動畫。

實現平移動畫

實現平移動畫,我們可以通過transform.translation或者水平transform.translation.x或者垂直平移transform.translation.y添加動畫。

translation是平移的意思,大家需要記住它。這裏只是水平移動,其實我們可以直接對transform.translation.x設置動畫。不過直接使用transform.translation也是可以的,我們設置y值爲0就可以了。

首先,我們通過屬性路徑的方法來創建動畫對象:

我們設置目的地爲水平移動到屏寬再減去控件的寬50,由於我們只是水平移動,垂直方向沒有移動,因此第二個參數設置爲0即可。我們需要明確一點,toValue這裏是指移動的距離而不是移到這個點:

對於其它屬性的設置,看註釋裏的說明就可以明白了。

旋轉動畫

旋轉動畫需要藉助CATransform3D這個表示三維空間的結構體,可以X軸旋轉、Y軸旋轉、Z軸旋轉:

我們通過屬性路徑創建動畫:

然後通過創建CATransform3D結構體,指定旋轉的角度爲180度,X、Y軸不旋轉,Z軸旋轉180度:

其它屬性設置與平移動畫一樣。

縮放動畫

transform.scale這個是圖的屬性路徑,設置scale值就可以達到縮放的效果:

我們通過屬性路徑方法創建動畫對象:

我們設置了初始變換和最終變換爲1和0:

其實由於圖初始狀態值爲正常狀態,沒有任何縮放,因此其值本就是1,所以fromValue可以不設置的。

閃爍動畫

我們這裏說的閃爍動畫其實就是透明度的變化,當然我們不能通過alpha值的變化來實現閃爍動畫,因此這個屬性是不具備隱式動畫效果的。不過系統提供了opacity,我們可以通過這個值的變化來實現閃爍效果。

我們通過屬性路徑opacity來創建動畫對象,注意不能使用alpha,否則不會有動畫效果的:

我們設置透明度從1->0變換,其它屬性設置與上面平移動畫一樣:

路徑動畫

路徑動畫這裏添加了灰常詳細的註釋說明,幾乎都包含了所有常用的屬性設置了:

在圖中position是層相對於父層的中心,而UI控件的center中心一樣。這裏要整體曲線路徑移動,我們通過position中心點的變換就可以曲線路徑移動。

這裏設置了CAMediaTiming協議中的所有屬性,詳細看代碼中的註釋吧,已經很詳細了!

源代碼

小夥伴們可以到github下載源代碼了:CALayerDemo隨手點個star吧~!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章