最近项目里用到了相似微信的录音控件,我把里面和业务逻辑无关的视图部分的代码抽出来作了个 Demo,有相似需求的能够参考下,但愿对你有用~git
功能和微信高度相似,主要有,github
最终效果以下图所示微信
实现思路就是维护各类状态,而后刷新对应状态的 UI,比较有意思的是音量动画的实现,用了一个 ShapeLayer
做为 mask
来作动画,具体实现能够看 BBVoiceRecordPowerAnimationView
这个类。 mask
主要就是用来裁剪视图,比较相似 PS 里的图层蒙版,mask
再配合 UIBezierPath
就能裁剪出任意形状的视图了,后面有机会再详细说明下。动画
代码放到 GitHub 上了,地址在这儿。感兴趣的能够下下来运行看看效果,实现不是很优雅:)有任何问题均可以给我留言,enjoy~3d
最后作个推广,欢迎关注公众号 MrPeakTech,我从这里学到不少,推荐给你们,共同进步~code