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