需求如下:
在用戶進行語音錄入時,根據(jù)聲音的大小出現(xiàn)不同振幅的波動動畫

動畫效果
拿到效果圖是有點懵逼的,該如何實現(xiàn)呢?
先分析下吧。

默認狀態(tài)效果
動畫基本都是點和線,感覺思路通暢了很多。
首先繪制默認狀態(tài)橫排的點。
CGContextFillRect(context, CGRectMake(x, y, 2.5,2.5));
CGContextStrokePath(context);
波動動畫怎么辦呢,同樣思路,波動的效果只是比較高一點的點。繪制方法不變,波動高度可以參考三角函數(shù).

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
整體思路就是這些,很多細節(jié)沒有描述,可以自己看代碼。
github地址