iOS如何绘制一个波动动画

需求如下:

在用户进行语音录入时,根据声音的大小出现不同振幅的波动动画

动画效果

拿到效果图是有点懵逼的,该如何实现呢?
先分析下吧。


默认状态效果

动画基本都是点和线,感觉思路通畅了很多。
首先绘制默认状态横排的点。

CGContextFillRect(context, CGRectMake(x, y, 2.5,2.5));
CGContextStrokePath(context);

波动动画怎么办呢,同样思路,波动的效果只是比较高一点的点。绘制方法不变,波动高度可以参考三角函数.


COSX
double maxPercent = fabs(cos(M_PI_2 - M_PI_4* num));

如何让动画动起来呢?
肯定是定时器:

 _animationDisplayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(animationDisplay)];
 _animationDisplayLink.paused = NO;
 _animationDisplayLink.frameInterval = 3;
 [_animationDisplayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];

至于为什么要用CADisplayLink 而不用NSTimer
参考iOS - CADisplayLink与NSTimer

整体思路就是这些,很多细节没有描述,可以自己看代码。
github地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,707评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,514评论 5 13
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,190评论 4 61
  • 昨夜很想你, 思念在灵魂里盘踞, 不知过多久, 你出现在梦里。
    生活无非就是爱啊阅读 2,767评论 0 0