iOS 彈幕功能的實(shí)現(xiàn)思路圖解
先來看一張效果圖(LICEcap錄制的有點(diǎn)卡, 湊合看)
理一下大概流程:
接下來實(shí)現(xiàn): 彈幕視圖從底部彈上來, 依次動(dòng)畫向上滾動(dòng), 出屏幕就移除加入重用隊(duì)列, 下次使用.
定義相關(guān)屬性:
1. 根據(jù)彈幕區(qū)域, 確定總共需要的彈幕itemView個(gè)數(shù)(總區(qū)域高度/最小高度),并添加到彈幕控件底部
追加一條新數(shù)據(jù)(由于需要?jiǎng)赢嬏幚? 當(dāng)前數(shù)據(jù)動(dòng)畫完成后才能處理下一條數(shù)據(jù),這里需要定義兩個(gè)區(qū):正在處理區(qū)和等待處理區(qū))
追加數(shù)據(jù)并彈出
從處理區(qū)取出itemView并初始化其將要展示的位置,計(jì)算寬高, 然后遍歷展示區(qū)item做動(dòng)畫, 接下來對將要展示的item做動(dòng)畫
執(zhí)行動(dòng)畫(upOffsetHeight為要展示的彈幕高度)
.動(dòng)畫完成后,接著處理:
將展示區(qū)的item遍歷, 如果已經(jīng)徹底移除屏幕了, 就回收到未展示區(qū)復(fù)用;
將當(dāng)前繪制好的彈幕更新分區(qū): 未展示區(qū)—>展示區(qū)
繼續(xù)處理等待區(qū)數(shù)據(jù)
大概思路就是這樣.
昨天花了個(gè)把小時(shí)完成了這個(gè)功能,并沒有優(yōu)化, 僅供參考學(xué)習(xí).
Demo地址: https://github.com/Winerywine/BarrageView .git
總結(jié)
以上所述是小編給大家介紹的iOS 圖解彈幕功能的實(shí)現(xiàn)思路詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(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)時(shí)導(dǎo)航欄和tabBar的隱藏與顯示功能
這篇文章主要介紹了iOS界面跳轉(zhuǎn)時(shí)導(dǎo)航欄和tabBar的隱藏與顯示功能,需要的朋友可以參考下2017-02-02ios動(dòng)態(tài)設(shè)置lbl文字標(biāo)簽的高度
本文給大家分享的是ios動(dòng)態(tài)設(shè)置lbl文字標(biāo)簽的高度寬度的方法,一共給大家匯總了3種方法,小伙伴們根據(jù)自己的項(xiàng)目需求自由選擇。2015-05-05iOS中一行代碼實(shí)現(xiàn) UIView 鏤空效果
這篇文章主要介紹了一行代碼實(shí)現(xiàn) UIView 鏤空效果,這是一種實(shí)現(xiàn) UIView 鏤空效果的方案,可以快速實(shí)現(xiàn)任意形狀的鏤空、文字的鏤空、帶鏤空的毛玻璃效果等。需要的朋友可以參考下2018-11-11iOS開發(fā)之image圖片壓縮及壓縮成指定大小的兩種方法
這篇文章主要介紹了iOS開發(fā)之image圖片壓縮及壓縮成指定大小的兩種方法,需要的朋友可以參考下2017-11-11