iOS如何繪制一個波動動畫

需求如下:

在用戶進行語音錄入時,根據(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地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,696評論 6 30
  • 在iOS中隨處都可以看到絢麗的動畫效果,實現(xiàn)這些動畫的過程并不復(fù)雜,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,270評論 5 13
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,419評論 4 61
  • 昨夜很想你, 思念在靈魂里盤踞, 不知過多久, 你出現(xiàn)在夢里。
    生活無非就是愛啊閱讀 375評論 0 0

友情鏈接更多精彩內(nèi)容