ios弹簧动画实现

释放双眼,带上耳机,听听看~!

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

    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)想对来说比较好理解,就是弹簧动画开始时的速度。

 

 

人已赞赏
iOS文章

iOS awakeFromNib的调用机制

2020-2-7 13:00:17

iOS文章

苹果加急审核

2020-2-7 14:23:38

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索