iOS毛虫动画

作者: sjf0213 | 来源:发表于2017-01-13 18:53 被阅读67次

第一次在简书写文章,就先写一篇技术分享吧。

在工作中我实现了一个类似毛虫的iOS动画效果,并不是很难,但是这个过程还是挺令人回味的,记录并分享给大家,而且让我想起一个有趣的现象:为程序员,你可能会发现时不时还是要动用你高中的数学知识解决实际问题。代码见Github

1,最终效果:

我在做滑动菜单的时候发现了一种很有趣的实现方式,菜单下方用来标注当前选中菜单项的红条,可以产生一种黏黏的迟滞效果,而且这种粘滞是随着手的滑动跟随变化,像一只毛虫。如下

2,动画解构

我们来分析这个动画,实现的思路不止一种,但后来笔者发现一种比较简单易懂的。这个红条的变化,可以分解为两个部分,

a, 增长的部分, (绝对值前期增长快,后期增长慢)

b,    缩减的部分,(绝对值前期增长慢,后期增长快)

于是我们大致可以在一个坐标轴上用曲线描述出来,二者间的差值就是红条总长度变化的过程

时间变化曲线

3,数学描述

下一步就是把这两根曲线用数学描述出来,第一眼可能说不出来,但是加两根辅助线就好了,如图,原来可以认为他们是两个1/4圆弧。

加了辅助线之后

横轴是时间,纵轴是长度,圆弧半径实际上等于红线静止长度,因为我们最后算出来的都是比例数值,所以可以假设半径等于1

就有了两个公式

(1-x)/1 = cosα

y/1 = sinα

得到  y = sin(acos(1-x));  这不就是解三角形么。

依此类推,另一条曲线的数学描述就是

x/1 = sinβ

(1-y)/1 = cosβ

y = 1 - cos(asin(x))

写成代码,大功告成,实际上只有两行代码是关键,具体实现请见 Github上

相关文章

  • iOS毛虫动画

    第一次在简书写文章,就先写一篇技术分享吧。 在工作中我实现了一个类似毛虫的iOS动画效果,并不是很难,但是这个过程...

  • ios动画

    ios动画 ios动画2 ios动画3

  • iOS动画

    iOS动画-从UIView动画说起iOS动画-Transform和KeyFrame动画iOS动画-layout动画...

  • 《iOS动画》读书笔记·内容层动画

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • 《iOS动画》读书笔记·显示层动画

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • 《iOS动画》读书笔记·前序

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • 《iOS动画》读书笔记·转场动画

    《iOS动画》读书笔记·前序《iOS动画》读书笔记·显示层动画《iOS动画》读书笔记·内容层动画《iOS动画》读书...

  • iOS - 转场动画

    参考文章:iOS 转场动画一张图看懂 iOS 转场动画iOS自定义转场动画 iOS 转场动画探究(一)

  • iOS开发——登录页面动画、转场动画

    iOS开发——登录页面动画、转场动画 iOS开发——登录页面动画、转场动画

  • iOS视频学习教程分享

    音视频 iOS核心动画技术:完美的iOS转场动画 iOS核心动画技巧:完美的iOS高级转场动画(2) iOS高级音...

网友评论

    本文标题:iOS毛虫动画

    本文链接:https://www.haomeiwen.com/subject/rlmsbttx.html