当前位置: 首页 > news >正文

仿微信录音控件Demo

最近项目里用到了类似微信的录音控件,我把里面和业务逻辑无关的视图部分的代码抽出来做了个 Demo,有类似需求的可以参考下,希望对你有用~

功能和微信高度类似,主要有,

  1. 上滑取消
  2. 最后10s展示倒计时
  3. 录制时长太小时展示 Toast

最终效果如下图所示

实现思路就是维护各种状态,然后刷新对应状态的 UI,比较有意思的是音量动画的实现,用了一个 ShapeLayer 作为 mask 来做动画,具体实现可以看 BBVoiceRecordPowerAnimationView 这个类。 mask 主要就是用来裁剪视图,比较类似 PS 里的图层蒙版,mask 再配合 UIBezierPath 就能裁剪出任意形状的视图了,后面有机会再详细说明下。

代码放到 GitHub 上了,地址在这儿。感兴趣的可以下下来运行看看效果,实现不是很优雅:)有任何问题都可以给我留言,enjoy~


最后做个推广,欢迎关注公众号 MrPeakTech,我从这里学到很多,推荐给大家,共同进步~

相关文章:

  • Android UI(三)SlidingMenu实现滑动菜单(详细 官方)
  • 乐观锁悲观锁应用
  • mysql 导入sql 报错 2013 2006
  • HDU ACM 题目分类
  • php获取音悦台视频
  • 机器学习如何选择模型 机器学习与数据挖掘区别 深度学习科普
  • mysql 修复指定的数据库
  • Upsource 与Intellij IDEA集成
  • iOS开发中如何将后台返回的时间转换为常见字串
  • 全驱动编程器引脚驱动图
  • 事务的操作
  • [转].net中SessionState相关配置
  • 分享Kali Linux 2016.2第50周镜像文件
  • 静态缓存和动态缓存
  • 编解码-java序列化
  • Java 23种设计模式 之单例模式 7种实现方式
  • Linux gpio口使用方法
  • Mysql优化
  • spring学习第二天
  • Transformer-XL: Unleashing the Potential of Attention Models
  • V4L2视频输入框架概述
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 代理模式
  • 第十八天-企业应用架构模式-基本模式
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 你不可错过的前端面试题(一)
  • 浅谈Golang中select的用法
  • 使用API自动生成工具优化前端工作流
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​​​​​​​​​​​​​​Γ函数
  • # 安徽锐锋科技IDMS系统简介
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (33)STM32——485实验笔记
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (接口封装)
  • (论文阅读11/100)Fast R-CNN
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (转)视频码率,帧率和分辨率的联系与区别
  • **PHP二维数组遍历时同时赋值
  • .Net 6.0 处理跨域的方式
  • .Net Core缓存组件(MemoryCache)源码解析
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 的程序集加载上下文
  • .NET 中的轻量级线程安全
  • .NetCore部署微服务(二)
  • @AliasFor注解
  • @RequestMapping-占位符映射
  • []T 还是 []*T, 这是一个问题
  • [BZOJ] 2427: [HAOI2010]软件安装
  • [BZOJ3223]文艺平衡树