滴滴里面有一个下单完成之后等待界面的倒计时转圈的视图...

就是这个...


原理:

通过CAShapeLayer层添加到自己自定义的视图layer上...

设置ShapeLayer的path...

他的路劲绘制一般通过UIBezierPath配合设置...

通过layer的StrokeEnd,StrokeStart设置path路径上的起点和终点...

可以直接通过设置这两个点就有平滑的东西效果...

先看效果...


看左边视图...

分成三部分...

红色进度变化的一个ShapeLayer...

底部灰色背景的一个ShapeLayer...

头部绿色方向的一个ShapeLayer...

主要是绿色的那部分是通过实时计算它的strokestart和strokeend来控制他始终就是那么一个长度...

说一下计算过程...

图中黄色为头部那个点(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://download.csdn.net/detail/hbblzjy/9581081

其中的CAShapeLayer-Progress....

如果需要的话 可以自己去改改...

文/T_aa(简书作者)
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

仿滴滴抢单倒计时的Demo相关推荐

  1. iOS 仿滴滴出行界面~demo

         联系人:石虎 QQ:1224614774  昵称: 嗡嘛呢叭咪哄                           QQ群:807236138  群称: iOS 技术交流学习群       ...

  2. 高仿滴滴打车 android,仿滴滴出行页面Demo

    Demo中实现的效果是仿照滴滴出行页面的效果. 1.上拉或下拉可回弹 2.可以将列表不断上拉,直至看到列表最底部内容 3.列表上拉直至列表内容超出屏幕范围后,然后不断下拉,下拉过程中,当拉到列表顶部内 ...

  3. 仿滴滴出行页面Demo

    Demo中实现的效果是仿照滴滴出行页面的效果. 1.上拉或下拉可回弹 2.可以将列表不断上拉,直至看到列表最底部内容 3.列表上拉直至列表内容超出屏幕范围后,然后不断下拉,下拉过程中,当拉到列表顶部内 ...

  4. 一人一本一年N手机,仿滴滴出行开发含700个功能网约车APP源码(二)

    继上一篇仿照滴滴出行开发的网约车顺风车代驾APP软件源码功能开发文章,继续聊一下司机端具有哪些功能. 在开发司机端的APP过程中,从只有一个早期的高德地图安卓版本,发展到大改框架.新增高德地图安卓版司 ...

  5. Vue2.0 仿滴滴出行项目

    Vue2.0 仿滴滴出行项目 最近,各大社区出现很多小伙伴的vue项目,趁着这股热潮我也用vue撸了一个滴滴出行的项目. 效果预览 在线预览:demo 项目地址:github 主要技术栈 vue2.0 ...

  6. 仿滴滴首页车辆随机平滑移动,基于高德地图

    之前就想做个仿滴滴首页车辆平滑移动的效果,但是一直没有时间.最近翻看旧项目的时候又看到这个需求,想了想还是花点时间做一下吧.先上效果图. 源码在文章结尾 先是滴滴的效果图 再然后是demo的效果图 首 ...

  7. 一人一本一年N手机,仿滴滴出行开发含700个功能网约车APP源码(一)

    四年前接到一个项目,仿照滴滴出行开发一套网约车顺风车代驾APP软件源码,功能要求不高,只要有安卓乘客端.安卓司机端.苹果乘客端.PC管理后台:能注册.登录.下单.抢单.结算.在线支付.评价.订单管理即 ...

  8. Android开发-基于百度地图API开发仿滴滴出行APP界面的实现

    前 言 近年来,由于移动互联网快速的发展以及基于移动设备的APP的普及,移动互联网改变了人们的生活方式.从线上的电子支付到线下的出行,移动互联网是当今社会人们生活不可或缺的一部分,而线下出行的网约车的 ...

  9. h5仿切水果游戏简单demo代码

    下载地址 h5仿切水果游戏简单demo代码,基于canvas实现的切水果效果. dd:

最新文章

  1. Using-更精彩更有用的做法-短签名
  2. ajax请求成功之后,自动打开一个空白页面,并打印出了返回内容
  3. 插入排序InsertionSort(Python实现)
  4. __getitem__的作用
  5. win环境下安装python之matplotlib经历
  6. php 多数据库联合查询,php如何同时连接多个数据库_PHP教程
  7. mysql多次join后count优化_mysql join count 优化案例
  8. 随机增量法:bzoj 1336 bzoj 1337 最小圆覆盖
  9. python3字符串操作_python3字符串常用方法
  10. 微信小程序源码1000套
  11. PMP-PMBOK(第六版)--49个过程ITTO记忆口诀(第一辑)
  12. HttpClient下载图片不完整的解决办法
  13. 随机发生器:线性同余法
  14. 汽车用组合仪表设计规范
  15. 北京二手房价分析及预测
  16. mysql安装步骤及报错处理(windows)
  17. IE 今天正式停用!网友炸锅了
  18. 计算机相关会议排名(二)
  19. rqt teb参数动态调试工具_teb
  20. 2xx、200、201、202、203、204、205、206 状态码详解

热门文章

  1. MyBatis框架的作用
  2. java mysql转义_java如何转义
  3. 字符串中删除指定的字符
  4. 【转】android:APP设置以太网静态IP_简要步骤
  5. S3C6410开发全纪录(一)《还原SD卡启动的真相》
  6. 【Web 安全】XSS 攻击详解
  7. 免费开放|不花一分钱,就能招到心仪产品人才
  8. 【报告分享】 网易知萌:2020酒行业睿享生活消费趋势报告(附下载)
  9. Latex多行注释快捷键(Texstudio)
  10. 使用js将图片压缩到指定大小