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>