ios彈簧動畫實現
我們經常看到彈簧動畫,像我們熟悉的微博就是一例,其實彈簧的動畫的實現是很簡單的,比如我想是想某個按鈕的上下震動的彈簧效果:
UIButton *button = [[UIButtonalloc] initWithFrame:CGRectMake(100,100, 100,50)];
button.backgroundColor = [UIColorredColor];
[self.viewaddSubview:button];
[UIViewanimateWithDuration:1delay:0.5usingSpringWithDamping:0.3initialSpringVelocity
button.frame =CGRectMake(100,400, 100,50);
} completion:^(BOOL finished) {
}];
UIView的分類為我們實現了animateWithDuration這個方法,使得我們很容易就能實現彈簧效果。
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(
duration:動畫的持續時間
delay:動畫延時幾秒執行
dampingRatio
:動畫阻尼係數
velocity:動畫開始速度
options:動畫效果引數
completion:動畫執行完成的回撥
其中:dampingRatio(動畫阻尼係數)和velocity(動畫開始速度)是需要重點了解的。阻尼係數(0~1),學物理的時候因該接觸過,衡量阻力大小的一個標準,阻尼係數越大則說明阻力越大,動畫的減速越開, 如果設為一的話,幾乎沒有彈簧的效果。而velocity(動畫開始速度:0~1)想對來說比較好理解,就是彈簧動畫開始時的速度。