iOS 圖解彈幕功能的實現


 先來看一張效果圖(LICEcap錄制的有點卡, 湊合看)

理一下大概流程: 

接下來實現: 彈幕視圖從底部彈上來, 依次動畫向上滾動, 出屏幕就移除加入重用隊列, 下次使用.

定義相關屬性: 

1. 根據彈幕區域, 確定總共需要的彈幕itemView個數(總區域高度/最小高度),並添加到彈幕控件底部 

  1. 追加一條新數據(由於需要動畫處理, 當前數據動畫完成后才能處理下一條數據,這里需要定義兩個區:正在處理區和等待處理區)

  1. 追加數據並彈出

從處理區取出itemView並初始化其將要展示的位置,計算寬高, 然后遍歷展示區item做動畫, 接下來對將要展示的item做動畫

執行動畫(upOffsetHeight為要展示的彈幕高度) 

.動畫完成后,接着處理:

將展示區的item遍歷, 如果已經徹底移除屏幕了, 就回收到未展示區復用;

將當前繪制好的彈幕更新分區: 未展示區—>展示區

繼續處理等待區數據 

大概思路就是這樣.

 

昨天花了個把小時完成了這個功能,並沒有優化, 僅供參考學習. 

Demo地址: https://github.com/Winerywine/BarrageView.git

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM