iOS之弹簧效果动画
[UIView animateWithDuration:1 delay:(0.1 + i * 0.1) usingSpringWithDamping:0.8 initialSpringVelocity:0.2 options:UIViewAnimationOptionCurveLinear animations:^{ editView.y = _topLabel.bottom + 30 * (i / 4 + 1) + 70 * (i / 4); } completion:nil];
+ (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 API_AVAILABLE(ios(7.0))
- (NSTimeInterval)duration —— 动画时间
- (NSTimeInterval)delay —— 延时几秒后开始执行动画
- Spring Animation 的 API 和一般动画相比多了两个参数,分别是
usingSpringWithDamping
和initialSpringVelocity
-
usingSpringWithDamping 参数
usingSpringWithDamping的范围为0.0f到1.0f,数值越小「弹簧」的振动效果越明显。下图演示了在initialSpringVelocity为0.0f的情况下,usingSpringWithDamping分别取0.2f,0.5f和1.0f的情况,如下图
- initialSpringVelocity 参数
initialSpringVelocity则表示初始的速度,数值越大一开始移动越快。下图演示了在usingSpringWithDamping
为1.0f时,initialSpringVelocity
分别取5.0f,15.0f和25.0f的情况。值得注意的是,初始速度取值较高而时间较短时,也会出现反弹情况
-
- options —— 为动画执行的选项,如下:
||
|:|
| UIViewAnimationOptionLayoutSubviews | 提交动画的时候布局子控件,表示子控件将和父控件一同动画 |
| UIViewAnimationOptionAllowUserInteraction | 动画时允许用户交流,比如触摸 |
| UIViewAnimationOptionBeginFromCurrentState | 从当前状态开始动画 |
| UIViewAnimationOptionRepeat | 动画无限重复 |
| UIViewAnimationOptionAutoreverse | 执行动画回路,前提是设置动画无限重复 |
| UIViewAnimationOptionOverrideInheritedDuration | 忽略外层动画嵌套的执行时间 |
| UIViewAnimationOptionOverrideInheritedCurve | 忽略外层动画嵌套的时间变化曲线 |
| UIViewAnimationOptionAllowAnimatedContent | 通过改变属性和重绘实现动画效果,如果key没有提交动画将使用快照|
| UIViewAnimationOptionShowHideTransitionViews | 用显隐的方式替代添加移除图层的动画效果|
| UIViewAnimationOptionOverrideInheritedOptions | 忽略嵌套继承的选项|
| 时间函数曲线相关||
|:|
| UIViewAnimationOptionCurveEaseInOut | 时间曲线函数,由慢到快|
| UIViewAnimationOptionCurveEaseIn | 时间曲线函数,由慢到特别快 |
| UIViewAnimationOptionCurveEaseOut | 时间曲线函数,由快到慢 |
| UIViewAnimationOptionCurveLinear | 时间曲线函数,匀速 |
|转场动画相关的 ||
|:|
| UIViewAnimationOptionTransitionNone | 无转场动画 |
| UIViewAnimationOptionTransitionFlipFromLeft | 转场从左翻转 |
| UIViewAnimationOptionTransitionFlipFromRight | 转场从右翻转 |
| UIViewAnimationOptionTransitionCurlUp | 上卷转场 |
| UIViewAnimationOptionTransitionCurlDown | 下卷转场 |
| UIViewAnimationOptionTransitionCrossDissolve | 转场交叉消失 |
| UIViewAnimationOptionTransitionFlipFromTop | 转场从上翻转 |
| UIViewAnimationOptionTransitionFlipFromBottom | 转场从下翻转 |
- completion —— 为动画执行完毕以后执行的代码块
- animations —— 动画效果的代码块(动画结束以后的效果)
原文地址:https://www.cnblogs.com/lys-iOS-study/p/11719989.html
- 数据库中的左连接(left join)和右连接(right join)区别
- .NET Core全面扫盲贴
- 协议森林13 9527 (DNS协议)
- 协议森林09 爱的传声筒 (TCP连接)
- 协议森林08 不放弃 (TCP协议与流通信)
- HTML自适应手机屏
- 常见的正则表达式解读释义
- .Net魔法堂:log4net详解
- CentOS6.5菜鸟之旅:安装SUN JDK1.7和Tomcat7
- 协议森林10 魔鬼细节 (TCP滑窗管理)
- CMD魔法堂:获取进程路径和PID值的方法集
- .Net魔法堂:提取注释生成API文档
- CMD魔法堂:CMD进入指定目录
- Apache IIS Tomcat共存,配置全能服务器
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释