Swift3.0做弹幕

    xiaoxiao2021-03-25  81

    BarrageRenderer 一个 iOS 上的开源弹幕渲染库, readme 都是用中文写,很容易理解。

    首先 ,下载下轮子,把BarrageRenderer/目录拖到你的工程文件夹下。

    其次,在你的 桥接文件里

    #import "BarrageRenderer.h"

    然后你就可以在项目里使用这个轮子了。

    接着说下怎么使用轮子: 当然在readme里有非常详细的介绍 上代码: 在你的VC 中使用

    var renderer:BarrageRenderer! // MARK: - 构建弹幕,添加到VC的view func buildDanMu() { self.renderer = BarrageRenderer.init() self.renderer.canvasMargin = UIEdgeInsetsMake(SCREEN_WIDTH * 0.3, 10, 10, 10) self.view.addSubview(renderer.view) // 这两句相信你看的懂 let safeObj = NSSafeObject.init(object: self, withSelector: #selector(PlayViewController.autoSenderBarrage)) timer = NSTimer.scheduledTimerWithTimeInterval(0.5, target: safeObj, selector: #selector(NSSafeObject.excute), userInfo: nil, repeats: true) } // 这是自动发送的方法,这里判断下,限制屏幕上弹幕的数量 func autoSenderBarrage() { let spriteNumber :NSInteger = renderer.spritesNumberWithName(nil) if spriteNumber <= 50 { renderer.receive(walkTextSpriteDescriptorWithDirection(BarrageWalkDirection.R2L.rawValue)) } }

    最精彩的部分来了,这里就是你想显示怎么样的弹幕。

    func walkTextSpriteDescriptorWithDirection(direction:UInt) -> BarrageDescriptor{ let descriptor:BarrageDescriptor = BarrageDescriptor() descriptor.spriteName = NSStringFromClass(BarrageWalkTextSprite.self) descriptor.params["text"] = self.danmuText[Int(arc4random())%(self.danmuText.count)] descriptor.params["textColor"] = UIColor(red: CGFloat(arc4random()%255) / 255, green: CGFloat(arc4random()%255) / 255, blue: CGFloat(arc4random()%255) / 255, alpha: 1) descriptor.params["speed"] = Int(arc4random()%100) + 50 descriptor.params["direction"] = direction return descriptor }

    在这里,离开界面的时候最好把弹幕停止,并且将弹幕的view从视图上移除 weakSelf!.renderer.stop()&& weakSelf!.renderer.view.removeFromSuperview()

    转载请注明原文地址: https://ju.6miu.com/read-8551.html

    最新回复(0)