iOS 仿百度外賣、拉勾App個人中心波浪效果

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

效果演示

你需要知道的


CADisplayLink

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

其創(chuàng)建方式:

CADisplayLink *timer = [CADisplayLink displayLinkWithTarget:self selector:@selector(wave)];

[timer addToRunLoop:[NSRunLoop currentRunLoop] ?forMode:NSRunLoopCommonModes];

CAShapeLayer

CALayer的子類,通常結(jié)合CGPath來繪制圖形.

其創(chuàng)建方式:

CAShapeLayer *Layer = [CAShapeLayer layer];

Layer.frame =? self.bounds;

Layer.fillColor = self.realWaveColor.CGColor;

Layer...等屬性

[self.view.layer addSublayer:Layer];

其優(yōu)點

? 渲染效率高渲染快速。CAShapeLayer使用了硬件加速,繪制同一圖形會比用Core Graphics快很多。

? 高效使用內(nèi)存。一個CAShapeLayer不需要像普通CALayer一樣創(chuàng)建一個寄宿圖形,所以無論有多大,都不會占用太多的內(nèi)存。

? 不會被圖層邊界剪裁掉。一個CAShapeLayer可以在邊界之外繪制。你的圖層路徑不會像在使用Core Graphics的普通CALayer一樣被剪裁掉。

? 不會出現(xiàn)像素化。當你給CAShapeLayer做3D變換時,它不像一個有寄宿圖的普通圖層一樣變得像素化。

三角函數(shù)

sinα = y/r ? cosα = x/r

思路實現(xiàn)

UIView –> 2個CAShapeLayer –> imageView.frame.orgin.y調(diào)整


主要代碼實現(xiàn)


屬性方法


實現(xiàn)


調(diào)用



最后效果:


來源:喬同X的博客

Demo地址

最后編輯于
?著作權(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)容

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