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

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

  • 相关阅读:
    Java程序性能优化——让你的java程序更快、更稳定
    synchronized和ReentrantLock
    Java集合——ConcurrentHashMap
    SpringMVC流程
    计算机网络http,https,tcp,udp,get,post
    JVM类加载机制
    关于strcpy和memcpy
    C语言指针
    malloc函数详解
    进程和线程
  • 原文地址:https://www.cnblogs.com/kesalin/p/custom_animation.html
Copyright © 2020-2023  润新知