博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 动画之弹性 Spring
阅读量:5903 次
发布时间:2019-06-19

本文共 1257 字,大约阅读时间需要 4 分钟。

在之前的中,首先是提供视图的一个初始状态,然后在动画块中更改视图的一些属性,使其变为我们想要的终极状态,并且提供动画时长等其他一些参数,最后 UIKit 自动为我们生成相应的动画。

之前的视图移动都是比较简单的,朝着某个方向,从一个点到另一个点。在生活中,当把一个物体附着在弹簧上时,物体的运动是一种比较复杂的弹性运动。UIView 提供了一个动画方法,其时间对应于物理弹簧的运动曲线。具体可以看下图:

默认的动画曲线是比较平滑的,Spring 动画的曲线是开始的快,结束的慢。

举个例子,从点 A 到点 B,如果使用上篇文章中动画方法,那么是平滑的从 A 移动到 B。假若我们这次给动画添加一点 Spring 的效果,那么动画的表现将是 View 在点 B 做一会振荡,最终又回到 B 点。就好像在 B 点有一根弹簧牵扯住了 view。

下面直接上 API:

    [UIView animateWithDuration:NSTimeInterval)duration                           delay:NSTimeInterval)delay          usingSpringWithDamping:(CGFloat)dampingRatio           initialSpringVelocity:(CGFloat)velocity                         options:(UIViewAnimationOptions)options                      animations:^{
                         <#code#>                      }                      completion:^(BOOL finished) {
                         <#code#>                      }      ]; 复制代码

Duration、delay、animations 以及 completion 参数与之前方法的并无两样。主要介绍下这两个参数:

  • dampingRatio:阻尼系数,范围为 0.0 ~ 1.0,数值越小,弹簧振动的越厉害,Spring 的效果越明显,效果对比可以看下图:

  • velocity:表示速度,数值越大移动的越快。值为 1.0 时,这个速度为 1 秒钟之内走完整个动画距离的速度。更大或更小的值会让 view 刚到达终点时的速度更大或更小。上图更直接:

具体的使用还是需要实际写一些代码来感受。

iOS 系统中大量使用了 Spring 动画,Spring 动画不仅可以对视图的 size 等位置属性做动画,还可以应用于 UIView 的其他动画属性。

转载于:https://juejin.im/post/5a30f2496fb9a045076faa00

你可能感兴趣的文章
手把手教你做出好看的文本输入框
查看>>
zabbix 3.2.7 (源码包)安装部署
查看>>
vsCode 快捷键、插件
查看>>
网络最大流问题算法小结 [转]
查看>>
iOS推送消息报错误“Domain=NSCocoaErrorDomain Code=3000”的可能问题
查看>>
kvm-1
查看>>
leetcode 64. Minimum Path Sum
查看>>
textkit
查看>>
CentOS7+CDH5.14.0安装CDH错误排查: HiveServer2 该角色的进程已退出。该角色的预期状态为已启动...
查看>>
The Oregon Trail 俄勒冈之旅
查看>>
Excel VBA连接MySql 数据库获取数据
查看>>
Developing a Service Provider using Java API(Service Provider Interface)(转)
查看>>
oschina程序开发
查看>>
nested exception is java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter
查看>>
“正在注册字体”问题解决
查看>>
windows10 更新后要输入2次密码才能进入系统
查看>>
iOS开发-OpenGL ES入门教程1
查看>>
平衡二叉树(AVL树)
查看>>
面向对象思想(第一天)
查看>>
微信小程序 js逻辑
查看>>