簡寫一個K歌評分的iOS控件

客官,我先上圖,先別走啊~
在這裏插入圖片描述

我在網上找了許久,無奈搜索能力奇差,沒找到個類似的(不然想拿來抄抄,產品催交作業~),我只能挖一下自己有什麼想法。本質上是一個UICollectionVIew,在每個item上畫多個CAShapeLayer+UIBezierPath曲線,每一段橙色部分就是一個layer。

長按,在插入(替換)layer的過程,一直更新layer.path的x和width。
鬆手,在停止插入layer的過程中,一直記錄下一個layer要開始畫的位置

在模型上我用state屬性來解決UICollectionViewCell的重用問題,state有4種狀態:
0:初始狀態所有cell沒有layer 或 豎線右方cell還沒畫layer,移除layer防重用
1:當前cell在畫layer
2:當前cell產生新的layer
3:豎線左方cell已經畫過了layer

主要代碼在StableLineView.m / ECKaraokeScoreView.m

聲明:此DEMO並不能用於實際生產

DEMO.ZIP

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章