美文网首页iOS Developer
iOS_动画_POP_POPSpringAnimation.h

iOS_动画_POP_POPSpringAnimation.h

作者: 丶纳凉 | 来源:发表于2017-04-12 14:25 被阅读94次

    一丶源码

    
    #import <pop/POPPropertyAnimation.h>
    
    /**
      弹簧动画类;通过弹簧动力学模型实现动画
    */
    @interface POPSpringAnimation : POPPropertyAnimation
    
    /**
    初始化一个实例
    */
    + (instancetype)animation;
    
    /**
    指定属性动画的实例
    */
    + (instancetype)animationWithPropertyNamed:(NSString *)name;
    
    /**
    当前速度;
    做动画开始之前应该设置初始速度;
    */
    @property (copy, nonatomic) id velocity;
    
    /**
    反弹力度
    范围 [0, 20]. 默认 4.
    */
    @property (assign, nonatomic) CGFloat springBounciness;
    
    /**
    速度
    范围 [0, 20]. 默认 to 12.
    */
    @property (assign, nonatomic) CGFloat springSpeed;
    
    /**
    拉力
    */
    @property (assign, nonatomic) CGFloat dynamicsTension;
    
    /**
    摩擦力
    */
    @property (assign, nonatomic) CGFloat dynamicsFriction;
    
    /**
    质量
    */
    @property (assign, nonatomic) CGFloat dynamicsMass;
    
    @end
    
    

    二丶问题及使用:

    这个...制作弹簧动画,

    可以看下胡克定义:
    以下来源百度:

    F=-k·x
    表达式为F=-k·x或△F=-k·Δx
    ,弹簧的弹力F和弹簧的伸长量(或压缩量)x成正比,即F= k·x 。
    k是物质的弹性系数,它只由材料的性质所决定,与其他因素无关。
    负号表示弹簧所产生的弹力与其伸长(或压缩)的方向相反。
    

    1.@property (copy, nonatomic) id velocity;

    初始速度

    2.@property (assign, nonatomic) CGFloat springBounciness;

    反弹力度

    反弹力度.gif

    3.@property (assign, nonatomic) CGFloat springSpeed;

    速度

    速度.gif

    /**
    拉力:影响回弹力度以及速度
    */

    4.@property (assign, nonatomic) CGFloat dynamicsTension;

    拉力.gif

    值越大,动画速度越快

    /**
    摩擦力:如果开启,动画会不断重复,幅度逐渐削弱,直到停止。
    */

    5.@property (assign, nonatomic) CGFloat dynamicsFriction;

    抹茶李.gif

    6.@property (assign, nonatomic) CGFloat dynamicsMass;

    //细微的影响动画的回弹力度以及速度

    示例:

    POPSpringAnimation *springAnimaiton = [POPSpringAnimation animationWithPropertyNamed:kPOPLayerPositionY];
    springAnimaiton.toValue = @(500);
    [_btn pop_addAnimation:springAnimaiton forKey:@"springAnimation"];
    
    springAnimaiton.springBounciness = 20;
    springAnimaiton.springSpeed = 20;
    
    以下这3个比较难用;如果不是特别需求,springBounciness和springSpeed就可以解决问题;
    
    //    springAnimaiton.dynamicsTension = _value1;
    //    springAnimaiton.dynamicsFriction = _value2;
    //    springAnimaiton.dynamicsMass = _value3;
    
    

    三丶其他:

    翻译有问题,留言告诉我下,谢谢;
    以及有使用问题也可以留言,一起探讨探讨;

    相关文章

      网友评论

        本文标题:iOS_动画_POP_POPSpringAnimation.h

        本文链接:https://www.haomeiwen.com/subject/splmattx.html