您的位置:首页 > 移动开发 > IOS开发

ios弹簧动画实现

2016-07-05 10:47 323 查看
我们经常看到弹簧动画,像我们熟悉的微博就是一例,其实弹簧的动画的实现是很简单的,比如我想是想某个按钮的上下震动的弹簧效果:

    UIButton *button = [[UIButtonalloc]
initWithFrame:CGRectMake(100,100,
100,50)];

    button.backgroundColor = [UIColorredColor];

    [self.viewaddSubview:button];

    

   [UIViewanimateWithDuration:1delay:0.5usingSpringWithDamping:0.3initialSpringVelocity:0.6options:UIViewAnimationOptionCurveEaseInOutanimations:^{

      button.frame =CGRectMake(100,400,
100,50);

   } completion:^(BOOL finished) {

   }];

UIView的分类为我们实现了animateWithDuration这个方法,使得我们很容易就能实现弹簧效果。

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay
usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options
animations:(void (^)(void))animations completion:(void (^__nullable)(BOOL
finished))completion
参数解析:

duration:动画的持续时间

delay:动画延时几秒执行

dampingRatio
:动画阻尼系数

velocity:动画开始速度

options:动画效果参数

completion:动画执行完成的回调

其中:dampingRatio(动画阻尼系数)和velocity(动画开始速度)是需要重点了解的。阻尼系数(0~1),学物理的时候因该接触过,衡量阻力大小的一个标准,阻尼系数越大则说明阻力越大,动画的减速越开,
如果设为一的话,几乎没有弹簧的效果。而velocity(动画开始速度:0~1)想对来说比较好理解,就是弹簧动画开始时的速度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: