iOS 彈幕功能的實現(xiàn)思路圖解
先來看一張效果圖(LICEcap錄制的有點卡, 湊合看)
理一下大概流程:
接下來實現(xiàn): 彈幕視圖從底部彈上來, 依次動畫向上滾動, 出屏幕就移除加入重用隊列, 下次使用.
定義相關(guān)屬性:
1. 根據(jù)彈幕區(qū)域, 確定總共需要的彈幕itemView個數(shù)(總區(qū)域高度/最小高度),并添加到彈幕控件底部
追加一條新數(shù)據(jù)(由于需要動畫處理, 當前數(shù)據(jù)動畫完成后才能處理下一條數(shù)據(jù),這里需要定義兩個區(qū):正在處理區(qū)和等待處理區(qū))
追加數(shù)據(jù)并彈出
從處理區(qū)取出itemView并初始化其將要展示的位置,計算寬高, 然后遍歷展示區(qū)item做動畫, 接下來對將要展示的item做動畫
執(zhí)行動畫(upOffsetHeight為要展示的彈幕高度)
.動畫完成后,接著處理:
將展示區(qū)的item遍歷, 如果已經(jīng)徹底移除屏幕了, 就回收到未展示區(qū)復用;
將當前繪制好的彈幕更新分區(qū): 未展示區(qū)—>展示區(qū)
繼續(xù)處理等待區(qū)數(shù)據(jù)
大概思路就是這樣.
昨天花了個把小時完成了這個功能,并沒有優(yōu)化, 僅供參考學習.
Demo地址: https://github.com/Winerywine/BarrageView .git
總結(jié)
以上所述是小編給大家介紹的iOS 圖解彈幕功能的實現(xiàn)思路詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對我們網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
您可能感興趣的文章
- 01-11iOS常用算法之兩個有序數(shù)組合并(要求時間復雜度為0(n))
- 01-11iOS調(diào)試Block引用對象無法被釋放的小技巧分享
- 01-11iOS動態(tài)更換Icon的全過程記錄
- 01-11iOS實現(xiàn)文本分頁的方法示例
- 01-11iOS常見宏理解及使用方法
- 01-11iOs遷至WKWebView跨過的一些坑
- 01-11iOS模擬中獎名單循環(huán)滾動效果
- 01-11Python一鍵查找iOS項目中未使用的圖片、音頻、視頻資源
- 01-11iOS中如何獲取某個視圖的截圖詳析
- 01-11iOS13適配的實現(xiàn)方法


閱讀排行
本欄相關(guān)
- 01-11UILabel顯示定時器文本跳動問題的解決
- 01-11iOS常用算法之兩個有序數(shù)組合并(要
- 01-11iOS 彈幕功能的實現(xiàn)思路圖解
- 01-11詳解MacOs免密登錄CentOs操作步驟
- 01-11iOS動態(tài)更換Icon的全過程記錄
- 01-11iOS調(diào)試Block引用對象無法被釋放的小技
- 01-11iOS常見宏理解及使用方法
- 01-11iOS實現(xiàn)文本分頁的方法示例
- 01-11iOs遷至WKWebView跨過的一些坑
- 01-11iOS模擬中獎名單循環(huán)滾動效果
隨機閱讀
- 01-10C#中split用法實例總結(jié)
- 01-10delphi制作wav文件的方法
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-11ajax實現(xiàn)頁面的局部加載