前言
簡單實現彈幕功能,表跟我談效率,但也有用佇列控制同時彈的數量。
正文**實現:
let danmaku_speed: cgfloat = 150 // 彈幕每秒移動速度
let danmaku_space_time: nstimeinterval = 1 // 彈幕之間的時間間隔
let danmaku_max_row = 3 // 最多同時彈幕行數
let danmakufont = uifont.systemfontofsize(18) // 彈幕字型大小
var rowarray = array>(count: 3, repeatedvalue: array())
var danmakuqueue = nsoperationqueue() // 佇列
class danmaku : nsobject }
func queuedanmaku(msg: msg) else else
}let danmaku = danmaku(msg, weakself.danmakufont, row, abs(delay) + lastdanmaku.delay)
weakself.rowarray[row].append(danmaku)
www.cppcns.com
self?.performselectoronmainthread("senddanmaku:", withobject: danmaku, waituntildone: true)
return}}
}}
程式設計客棧 sleep(1000)
} while self != nil
}})) }
func senddanmaku(danmaku: danmaku) )
label.removefromsuperview()
} }**說明:
**控制了最多同時只能彈三行,每行最後一條如果延遲大於跑彈幕的時間(已經有一條處於完全等待狀態)就自動切到下一行,超過最大限制就等待。
* rowarray 主要用於查詢前乙個彈幕的位置和時間
* 別忘了在 deinit 裡面加上 danmakuqueue.cancelalloperations()
* 注意 nsblockoperation 的 block 並不在主線程上
以上就是對ios開發 簡單的彈幕功能的實現**,有需要開發這種功能的朋友可以參考下。
本文標題: ios 實現簡單的彈幕功能
本文位址:
彈幕功能的實現
在做專案的時候用到了彈幕功能 彈幕的字型大小和顏色也都是隨機的,奉上 html 彈幕 css tool switch container switch type checkbox type radio tool switch container labeljs switch 彈幕 switch la...
iOS 簡單彈幕效果
彈幕的簡單效果就是這樣,我是仿照別人的簡單例項做了簡單的彈幕 廢話少說進入正題 簡單的思路來說就是在螢幕上顯示lable,這些lable的位置顏色以及內容不一樣 第一步 建立乙個plist用於儲存資料 第二步 建立控制器用於顯示彈幕,並將此控制器作為window的跟控制器 第三步 寫乙個方法用來建立...
Swift 2 0 實現簡單彈幕功能
前言 簡單實現彈幕功能,表跟我談效率,但也有用佇列控制同時彈的數量。宣告正文 let danmaku speed cgfloat 150 彈幕每秒移動速度 let danmaku space time nstimeinterval 1 彈幕之間的時間間隔 let danmaku max row 3 ...