如何實現百度外賣APP個人中心頭像”浪”起來的動畫效果

喬同X發表於2016-09-01

作為一箇中午下班不肯離開工作崗位且勤奮工作的騷年來說,叫外賣就成了不可或缺的習慣.某日瞬間發現百度外賣的APP波浪效果很是吸引人.相比較其他的外賣APP,顏值略高些.(淘寶也有波浪的效果),遂就思考如何實現這種”浪”的效果.

效果演示

百度外賣 波浪效果圖:

11baidu

 

你需要知道的

簡單的說就是一定時器,其根本利用刷幀和螢幕頻率一樣來重繪渲染頁面.
其建立方式:

CAShapeLayer

CALayer的子類,通常結合CGPath來繪製圖形.
其建立方式:

其優點

  • 渲染效率高渲染快速。CAShapeLayer使用了硬體加速,繪製同一圖形會比用Core Graphics快很多。
  • 高效使用記憶體。一個CAShapeLayer不需要像普通CALayer一樣建立一個寄宿圖形,所以無論有多大,都不會佔用太多的記憶體。
  • 不會被圖層邊界剪裁掉。一個CAShapeLayer可以在邊界之外繪製。你的圖層路徑不會像在使用Core Graphics的普通CALayer一樣被剪裁掉。
  • 不會出現畫素化。當你給CAShapeLayer做3D變換時,它不像一個有寄宿圖的普通圖層一樣變得畫素化。

三角函式

21sinf

22cosf

思路實現

UIView –> 2個CAShapeLayer –> imageView.frame.orgin.y調整

主要程式碼實現

屬性方法

12code_wave_h

實現

13code_wave

呼叫

14wave_uses

最後效果:

15jswave

Demo地址

相關文章