一丶源碼
#import <pop/POPPropertyAnimation.h>
/**
彈簧動畫類;通過彈簧動力學模型實現(xiàn)動畫
*/
@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;
/**
質(zhì)量
*/
@property (assign, nonatomic) CGFloat dynamicsMass;
@end
二丶問題及使用:
這個...制作彈簧動畫,
可以看下胡克定義:
以下來源百度:
F=-k·x
表達式為F=-k·x或△F=-k·Δx
,彈簧的彈力F和彈簧的伸長量(或壓縮量)x成正比隘击,即F= k·x 甸饱。
k是物質(zhì)的彈性系數(shù)智末,它只由材料的性質(zhì)所決定,與其他因素無關(guān)矾缓。
負號表示彈簧所產(chǎn)生的彈力與其伸長(或壓縮)的方向相反朋沮。
1.@property (copy, nonatomic) id velocity;
初始速度
2.@property (assign, nonatomic) CGFloat springBounciness;
反彈力度
3.@property (assign, nonatomic) CGFloat springSpeed;
速度
/**
拉力:影響回彈力度以及速度
*/
4.@property (assign, nonatomic) CGFloat dynamicsTension;
值越大,動畫速度越快
/**
摩擦力:如果開啟,動畫會不斷重復缔恳,幅度逐漸削弱,直到停止洁闰。
*/
5.@property (assign, nonatomic) CGFloat dynamicsFriction;
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;
三丶其他:
翻譯有問題,留言告訴我下,謝謝;
以及有使用問題也可以留言,一起探討探討;