[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 效果的旋转菜单图:

有空了再整理实现思路,详细写篇文章,放出源码来。

原文地址:https://www.cnblogs.com/kesalin/p/custom_animation.html