ios 動畫系列之五 複雜的動畫實現

2022-08-11 05:39:16 字數 1913 閱讀 2523

本文**參考自:尊重原創!

1、實現圓弧運動

-(void

)changeuiview4

moveanim.values = values;//

用values實現

moveanim.removedoncompletion =yes;

//旋轉變化,scaleanim設定了縮小

cabasicanimation *scaleanim = [cabasicanimation animationwithkeypath:@"

transform"];

scaleanim.fromvalue =[nsvalue valuewithcatransform3d:catransform3didentity];

//x,y軸縮小到0.3,z 軸不變

scaleanim.tovalue = [nsvalue valuewithcatransform3d:catransform3dmakescale(0.3, 0.3, 1.0

)]; scaleanim.removedoncompletion =yes;

//透明度變化,opacityanim設定了透明度的變化

cabasicanimation *opacityanim = [cabasicanimation animationwithkeypath:@"

alpha"];

opacityanim.fromvalue = [nsnumber numberwithfloat:1.0

]; opacityanim.tovalue = [nsnumber numberwithfloat:0.2

]; opacityanim.removedoncompletion =yes;

//關鍵幀,旋轉,透明度組合起來執行

caanimationgroup *animgroup =[caanimationgroup animation];

//陣列[caanimation物件],陣列裡的每個物件同時執行

animgroup.animations =[nsarray arraywithobjects:moveanim, scaleanim,opacityanim, nil];

animgroup.duration = 1

; animgroup.removedoncompletion =no;

animgroup.fillmode =kcafillmodeforwards;

[_imageview.layer addanimation:animgroup forkey:nil];

}

2、旋轉並向右移動

//

旋轉並向右移動

- (void

)changeuiview5

向右移動是因為關鍵幀使用了路徑為直線的路徑。沿z軸旋轉是靠transformanim.tovalue = [nsvalue valuewithcatransform3d: catransform3dmakerotation(m_pi,0,0,1)]; 

3、旋轉並消除邊緣鋸齒

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

uigraphicsbeginimagecontext 開始內容

uigraphicsgetimagefromcurrentimagecontext 獲取當前內容作為,

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

- (void

)changeuiview6

至此,動畫這乙個專題也差不多學完了,為了鞏固和檢查學習效果,我決定在網上找乙個簡單的動畫示例自己模仿著做一做。

Android 動畫 動畫詳解之屬性動畫(五)

在前幾篇中,我們了解了補間動畫 插值器和屬性動畫中的valueanimator,這一篇,我們來了解下屬性動畫中的objectanimator objectanimator是通過指定屬性所對應的set方法來改變的。比如,我們上面指定的改變rotation的屬性值,在做動畫時就會到指定控制項 textv...

iOS 動畫實戰之Lottie動畫

1.作為收藏按鈕,是不是很活潑?2.返回與選單之間的切換,生動有趣 3.還有各種形變動畫.更棒的是,lottie有各種不同的版本,安卓,ios,前端都可以使用,理論上動畫做一套就可以共用,大大的減少了工作量.使用方法 整合環境 移動端同學整合lottie框架,ui ue同學整合ae的bodymovi...

iOS開發 動畫程式設計OC篇 (五)動畫組

一 組動畫簡單說明 caanimation的子類,可以儲存一組動畫物件,將caanimationgroup物件加入層後,組中所有動畫物件可以同時併發執行 屬性解析 animations 用來儲存一組動畫物件的nsarray 預設情況下,一組動畫物件是同時執行的,也可以通過設定動畫物件的beginti...