仿滴滴抢单倒计时的Demo
滴滴里面有一个下单完成之后等待界面的倒计时转圈的视图...
![](http://upload-images.jianshu.io/upload_images/2019043-143ff1b0cd401c80.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
就是这个...
原理:
通过CAShapeLayer层添加到自己自定义的视图layer上...
设置ShapeLayer的path...
他的路劲绘制一般通过UIBezierPath配合设置...
通过layer的StrokeEnd,StrokeStart设置path路径上的起点和终点...
可以直接通过设置这两个点就有平滑的东西效果...
先看效果...
![](http://upload-images.jianshu.io/upload_images/2019043-aae45f56720fcd4d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
看左边视图...
分成三部分...
红色进度变化的一个ShapeLayer...
底部灰色背景的一个ShapeLayer...
头部绿色方向的一个ShapeLayer...
主要是绿色的那部分是通过实时计算它的strokestart和strokeend来控制他始终就是那么一个长度...
说一下计算过程...
![](http://upload-images.jianshu.io/upload_images/2019043-bc0921b5de80f063.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
图中黄色为头部那个点(s1)...
灰色为底部大圆的四分之一(s2)...
要计算出这个s1的strokeStart,strokeEnd之间的差值就是需要计算出s2所在s1中周长所占的比例...
这个比例如果转化成弧度或者角度比的话就可以通过a角度来计算...
根据余弦定理:
cosa = (b*b+c*c-a*a)/(2*b*c)
就可得出a的弧度值...
换算比例就是stroke的start和end的差值...
主要代码:
//计算这个point的start和end所占用这个角弧度值//余弦定理 cosc = (a*a + b*b - c*c)/(2*a*b);float radian = cosf((self.radius*self.radius+self.radius*self.radius -
(self.pointRadius*2)*(self.pointRadius*2)))/(2*self.radius*self.radius);//头部点所占路劲的周长float offsetProgress = radian/(M_PI*2);_pointAnimatedLayer.strokeStart = _strokeEnd-offsetProgress;_pointAnimatedLayer.strokeEnd = MIN(_strokeEnd, 1);
![](http://upload-images.jianshu.io/upload_images/2019043-f670b26f05f96650.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
项目下载:http://download.csdn.net/detail/hbblzjy/9581081
其中的CAShapeLayer-Progress....
如果需要的话 可以自己去改改...
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
仿滴滴抢单倒计时的Demo相关推荐
- iOS 仿滴滴出行界面~demo
联系人:石虎 QQ:1224614774 昵称: 嗡嘛呢叭咪哄 QQ群:807236138 群称: iOS 技术交流学习群 ...
- 高仿滴滴打车 android,仿滴滴出行页面Demo
Demo中实现的效果是仿照滴滴出行页面的效果. 1.上拉或下拉可回弹 2.可以将列表不断上拉,直至看到列表最底部内容 3.列表上拉直至列表内容超出屏幕范围后,然后不断下拉,下拉过程中,当拉到列表顶部内 ...
- 仿滴滴出行页面Demo
Demo中实现的效果是仿照滴滴出行页面的效果. 1.上拉或下拉可回弹 2.可以将列表不断上拉,直至看到列表最底部内容 3.列表上拉直至列表内容超出屏幕范围后,然后不断下拉,下拉过程中,当拉到列表顶部内 ...
- 一人一本一年N手机,仿滴滴出行开发含700个功能网约车APP源码(二)
继上一篇仿照滴滴出行开发的网约车顺风车代驾APP软件源码功能开发文章,继续聊一下司机端具有哪些功能. 在开发司机端的APP过程中,从只有一个早期的高德地图安卓版本,发展到大改框架.新增高德地图安卓版司 ...
- Vue2.0 仿滴滴出行项目
Vue2.0 仿滴滴出行项目 最近,各大社区出现很多小伙伴的vue项目,趁着这股热潮我也用vue撸了一个滴滴出行的项目. 效果预览 在线预览:demo 项目地址:github 主要技术栈 vue2.0 ...
- 仿滴滴首页车辆随机平滑移动,基于高德地图
之前就想做个仿滴滴首页车辆平滑移动的效果,但是一直没有时间.最近翻看旧项目的时候又看到这个需求,想了想还是花点时间做一下吧.先上效果图. 源码在文章结尾 先是滴滴的效果图 再然后是demo的效果图 首 ...
- 一人一本一年N手机,仿滴滴出行开发含700个功能网约车APP源码(一)
四年前接到一个项目,仿照滴滴出行开发一套网约车顺风车代驾APP软件源码,功能要求不高,只要有安卓乘客端.安卓司机端.苹果乘客端.PC管理后台:能注册.登录.下单.抢单.结算.在线支付.评价.订单管理即 ...
- Android开发-基于百度地图API开发仿滴滴出行APP界面的实现
前 言 近年来,由于移动互联网快速的发展以及基于移动设备的APP的普及,移动互联网改变了人们的生活方式.从线上的电子支付到线下的出行,移动互联网是当今社会人们生活不可或缺的一部分,而线下出行的网约车的 ...
- h5仿切水果游戏简单demo代码
下载地址 h5仿切水果游戏简单demo代码,基于canvas实现的切水果效果. dd:
最新文章
- Using-更精彩更有用的做法-短签名
- ajax请求成功之后,自动打开一个空白页面,并打印出了返回内容
- 插入排序InsertionSort(Python实现)
- __getitem__的作用
- win环境下安装python之matplotlib经历
- php 多数据库联合查询,php如何同时连接多个数据库_PHP教程
- mysql多次join后count优化_mysql join count 优化案例
- 随机增量法:bzoj 1336 bzoj 1337 最小圆覆盖
- python3字符串操作_python3字符串常用方法
- 微信小程序源码1000套
- PMP-PMBOK(第六版)--49个过程ITTO记忆口诀(第一辑)
- HttpClient下载图片不完整的解决办法
- 随机发生器:线性同余法
- 汽车用组合仪表设计规范
- 北京二手房价分析及预测
- mysql安装步骤及报错处理(windows)
- IE 今天正式停用!网友炸锅了
- 计算机相关会议排名(二)
- rqt teb参数动态调试工具_teb
- 2xx、200、201、202、203、204、205、206 状态码详解