[Cocoa]实现了一套自定义动画库
实现了一套自定义动画库
罗朝辉 (http://www.cnblogs.com/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 效果的旋转菜单图:
有空了再整理实现思路,详细写篇文章,放出源码来。