實現了一套自訂動畫庫
羅朝輝(http://blog.csdn.net/kesalin)
轉載請註明出處
最近在 iOS 上實現了一套自訂動畫庫,可以支援任何數值型變數的值的自動動畫示範,並支援多種動畫效果,效果還是很炫的。比如說你設定了一個位移變數從50變到100,那麼這個變化過程就可以以動畫形式進行,而不是常規的一步到位。與 iOS 系統內建的 Animation 相比,我的這套自訂動畫庫,可配置性更高,使用更簡單。用 set 表示有動畫的設定值,用 update 表示常規的沒有動畫的設定值。目前支援的動畫類型如下:
enum EaseType_ {
EaseType_None,
EaseType_In,
EaseType_Out,
EaseType_InOut,
};
typedef int EaseType;
enum AnimationType_ {
AnimationType_Linear,
AnimationType_Bounce,
AnimationType_Back,
AnimationType_Quartic,
AnimationType_Quintic,
AnimationType_Circular,
AnimationType_Cubic,
AnimationType_Quadratic,
AnimationType_Sinusoidal,
AnimationType_Elastic,
};
typedef int AnimationType;
使用例子:
// setup animation // propertyValue.duration = duration; propertyValue.easeType = EaseType_Out; propertyValue.animationType = AnimationType_Back; // AnimationType_Elastic // AnimationType_Back // AnimationType_Bounce // start animation [propertyValue setValue:targetValue];
帶復原效果的旋轉 Pie 圖:
帶 Bounce 效果的旋轉菜單圖:
有空了再整理實現思路,詳細寫篇文章,放出源碼來。