抽空来总结一下前段时间搞的直播中弹幕问题。有1.弹幕移动的移速问题 2.弹幕移动重叠问题的解决 3.大量弹幕情况利用重用池解决内存飙升问题,进行性能优化
我这个是把弹幕轨道写死的,放弹幕的时候判断一下那个轨道的弹幕X坐标比较小,就在那个轨道上面放弹幕。
先看一个图,理一下思路。红色位置开始,蓝色位置结束。一共是KscreenWith+LabWith的路程,设定一个写死的速度,那么生命周期就确定了。
创建2个数组,一个作为弹幕的数据源,一个作为弹幕的重用池。
1.自定义一个方法,判断重用池里面有没有lab,有的话就用,然后从数据源取值。没有的话就创建lab,从数据源取值。
我这个没有给view赋值,可以自己写一个。取数据后从数据源中remove掉这个弹幕model,开始uiview动画从右到左,判断当到了蓝色的位置就把这个lab放到重用池里面。
2.解决重叠问题
放弹幕之前使用gcd做一个延迟处理
可以设置一个最小间距时间座位延迟处理。