彈幕文字看了不少,在此寫一篇簡單易懂的彈幕開發(fā)介紹
構(gòu)思:
在一個view上有規(guī)律地將uilabel 顯示出來,那么關(guān)鍵就是uilabel被如何控制出場,我構(gòu)思了一個調(diào)度類SYLBulletDispatcher 來組織顯示.
第一步,根據(jù)view的尺寸來生成彈道SYLBulletTrajectory ,我生成兩種彈道(從右往左和下方固定位)
第二步,將接收到的彈幕放入彈幕池,等待有空閑的彈道來接收他.SYLBulletDispatcher會不停循環(huán)檢查
第三步,彈幕移動時,發(fā)現(xiàn)其完全顯示后就將其所屬彈道設置為空閑
這樣彈幕就能不停地出現(xiàn)移動了.
實現(xiàn):
類
1 彈幕類:決定彈幕的顯示樣式與內(nèi)容
2 彈道類:決定彈幕的顯示軌道(從右向左或者在底部顯示)
3 顯示視圖: 彈幕顯示視圖.
4 調(diào)度類:生成彈道,并且在彈幕來時將彈幕有序地放入彈道.
使用:
//初始化
SYLBulletView*bulletView = [[SYLBulletViewalloc]initWithFrame:self.view.bounds];
[self.viewaddSubview:bulletView];
//使用此方法放入彈幕數(shù)據(jù)即可
- (void)receiveBullet:(NSAttributedString*)string andWithPositon:(BulletPosition)position?

附上