Core Animation之多種動畫效果

2021-06-14 12:07:28 字數 1632 閱讀 5687

前面介紹了core animation基礎知識,還有calayer的簡單使用,最終還是有要動畫的滴,這裡列出幾個動畫效果,參考下能加深對core animation的認識和理解。

1、把移到右下角變小透明

使用caanimationgroup疊加動畫效果,就是下面按鈕《把移到右下角變小透明》描述的效果:

上面三個圖是動畫的三個狀態,實現**如下:

- (

void

)viewdidload 

- (ibaction)tranaction:(id)sender  

**解析:上面關鍵幀設定了動畫的路徑,scaleanim設定了縮小,opacityanim設定了透明度的變化。把三個動畫組合到:animgroup。

在把animgroup新增到imageview.layer層的動畫裡。於是動畫效果就有了。

2、旋轉並向右移動

- (ibaction)rightrotateaction:(id)sender  

**解析:可能你沒注意到,catransform3dmakerotation,這返回的是旋轉的值。上面的動畫效果裡返回的是catransform3dmakescale縮放的值。

向右移動是因為關鍵幀使用了路徑為直線的路徑。

3、旋轉並消除邊緣鋸齒

- (ibaction)rotate360action:(id)sender  

如果你仔細觀察,會看到第二個動畫裡在旋轉時,邊緣是有鋸齒的,如何消除呢?在邊緣新增乙個畫素的透明區域,去鋸齒。

uigraphicsbeginimagecontext 開始內容。

uigraphicsgetimagefromcurrentimagecontext 獲取當前內容作為。

uigraphicsendimagecontext結束。是和uigraphicsbeginimagecontext配套使用的。

4、吃豆人動畫

這個有點複雜,首先說下實現的步驟:

畫乙個吃豆人開口的路徑:pacmanopenpath

畫乙個吃豆人閉口的路徑:pacmanclosedpath

新建乙個閉口的吃豆人頭的層:shapelayer

把開口和閉口路徑設定成cabasicanimation *chompanimation動畫的起點和終點,這樣迴圈就能出現咬牙的動畫了。

最後設定乙個路徑為關鍵幀,讓吃豆人在這條路徑上行動。

**如下:

- (

void

)animationinit 

- (

void

)startanimation  

- (

void

)viewdidload 

還需要新增乙個巨集:

#define degrees_to_radians(x) (3.14159265358979323846 * x / 180.0)    計算角度轉換

新增了個手勢,點一下螢幕,吃豆人就動起來了。效果:

本篇例子**:

**

Core Animation之多種動畫效果

前面介紹了core animation基礎知識,還有calayer的簡單使用,最終還是有要動畫的滴,這裡列出幾個動畫效果,參考下能加深對core animation的認識和理解 使用caanimationgroup疊加動畫效果,就是下面按鈕 把移到右下角變小透明 描述的效果 上面三個圖是動畫的三個狀...

Core Animation之多種動畫效果

前面介紹了core animation基礎知識,還有calayer的簡單使用,最終還是有要動畫的滴,這裡列出幾個動畫效果,參考下能加深對core animation的認識和理解 使用caanimationgroup疊加動畫效果,就是下面按鈕 把移到右下角變小透明 描述的效果 上面三個圖是動畫的三個狀...

Core Animation之多種動畫效果

前面介紹了core animation基礎知識,還有calayer的簡單使用,最終還是有要動畫的滴,這裡列出幾個動畫效果,參考下能加深對core animation的認識和理解 使用caanimationgroup疊加動畫效果,就是下面按鈕 把移到右下角變小透明 描述的效果 上面三個圖是動畫的三個狀...