iOS开源-BBVoiceRecordDemo:仿微信录音控件
zj_lp
8年前
<p style="text-align:center"><img src="https://simg.open-open.com/show/80a91df75a0ca732447361a858696fa3.jpg"></p> <p>最近项目里用到了类似微信的录音控件,我把里面和业务逻辑无关的视图部分的代码抽出来做了个 Demo,有类似需求的可以参考下,希望对你有用~</p> <p>功能和微信高度类似,主要有,</p> <ol> <li>上滑取消</li> <li>最后10s展示倒计时</li> <li>录制时长太小时展示 Toast</li> </ol> <p>最终效果如下图所示</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/4c965c171fdfb5ace2aac71d181cecda.gif"></p> <p style="text-align:center"><img src="https://simg.open-open.com/show/dc9bfdfc0a674203a17ef2066eec6d33.gif"></p> <p>实现思路就是维护各种状态,然后刷新对应状态的 UI,比较有意思的是音量动画的实现,用了一个 ShapeLayer 作为 mask 来做动画,具体实现可以看 BBVoiceRecordPowerAnimationView 这个类。 mask 主要就是用来裁剪视图,比较类似 PS 里的图层蒙版, mask 再配合 UIBezierPath 就能裁剪出任意形状的视图了,后面有机会再详细说明下。</p> <p> </p> <p> </p> <p> </p>