随时开始随时结束的抽奖转盘

公司要实现点击抽奖开始动画,结果返回后缓慢停止到抽奖区域,在网上Google出来的大部分转盘demo都是等抽奖结果返回开启动画,经过两天的研究,可以随时开始与结束的转盘分享给大家(主要难点在于计算减速动画速度的计算)。

先上结果展示图(圆形转盘):


圆形转盘图,盗用网上素材,诸君莫怪


ps:圆形转盘因为性能的缘故在模拟器可能效果有些不理想,请以真机为主

来人呐,上代码:

点击开始按钮,开启定时器,无限执行旋转动画


无限旋转动画

点击停止按钮,首先停止无限旋转动画


停止无限旋转动画

在无限旋转的动画停止的回调里开启缓慢结束动画:


关键代码,根据减速过程的平均速度,计算减速时间

关键点:

1.为了确保最终指向的位置和无限旋转动画的位置之间的过程太短导致减速太突兀,所以减速动画会额外旋转一圈

2.random是模拟出的抽奖结果,计算出将要减速的路程一圈+抽奖结果,减速过程的平均速度为将要开始减速时的速度的一半(小学知识😭),路程/平均速度=减速时间,设置动画快进慢出,减速动画搞定。


以及老虎机样式的转盘

老虎机转盘的大致原理和圆形转盘的相同,参考代码。

代码下载 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,118评论 25 709
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,157评论 5 13
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,599评论 6 30
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,271评论 4 61
  • 公司资产,胸卡交给人事之后,终于我离开了公司。2015年2月入职,2年半的时间,900天说长不长,说短不短,但是下...
    咸鸭蛋只吃蛋白哦阅读 614评论 1 0