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ū)復(fù)用;
將當前繪制好的彈幕更新分區(qū): 未展示區(qū)—>展示區(qū)
繼續(xù)處理等待區(qū)數(shù)據(jù)
大概思路就是這樣.
昨天花了個把小時完成了這個功能,并沒有優(yōu)化, 僅供參考學(xué)習(xí).
Demo地址: https://github.com/Winerywine/BarrageView .git
總結(jié)
以上所述是小編給大家介紹的iOS 圖解彈幕功能的實現(xiàn)思路詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
iOS應(yīng)用開發(fā)中StoryBoard搭建UI界面的基本使用講解
這篇文章主要介紹了iOS應(yīng)用開發(fā)中StoryBoard搭建UI界面的基本使用,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2016-02-02iOS界面跳轉(zhuǎn)時導(dǎo)航欄和tabBar的隱藏與顯示功能
這篇文章主要介紹了iOS界面跳轉(zhuǎn)時導(dǎo)航欄和tabBar的隱藏與顯示功能,需要的朋友可以參考下2017-02-02iOS開發(fā)之image圖片壓縮及壓縮成指定大小的兩種方法
這篇文章主要介紹了iOS開發(fā)之image圖片壓縮及壓縮成指定大小的兩種方法,需要的朋友可以參考下2017-11-11