zoukankan      html  css  js  c++  java
  • [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 效果的旋转菜单图:

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

  • 相关阅读:
    Linux开机启动流程(centos7)
    系统平均负载
    Linux基础命令screen(后台管理程序)
    Linux基础命令nohup & (管理进程的后台)
    Linux基础命令kill(终止进程)
    Linux基础命令top(动态显示进程状态)
    Linux基础练习题答案7.31
    Linux基础命令ps
    Swap虚拟内存(内存满了怎么办?)
    50 | 深入浅出网站高可用架构设计
  • 原文地址:https://www.cnblogs.com/kesalin/p/custom_animation.html
Copyright © 2011-2022 走看看