OCBarrage 1.0.5

OCBarrage 1.0.5

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布日期最后发布2018年10月

lifeichao维护。



OCBarrage 1.0.5

OCBarrage

一款高性能的iOS弹幕渲染引擎。同时,渲染5000条弹幕也非常平滑,轻量级,可扩展,您可以添加任何想要的动画!超高性能,简单易用!底层使用OCBarrageCore Animation框架驱动,使用Core Graphics进行绘图,使用GPU进行渲染,超高性能!您可以添加任何想要的动画,满足您对动画的多样性需求!

演示

同时渲染5000条弹幕.gif

demonstration.gif

walkBarrage.gif

mixedImageAndText.gif

stopover.gif

安装

CocoaPods

  1. pod 'OCBarrage'添加到您的Podfile中。
  2. 运行pod installpod update
  3. 导入OCBarrage.h

手动

  1. 下载OCBarrage子目录中的所有文件。
  2. 将源文件添加到您的Xcode项目中。
  3. 导入OCBarrage.h

文档

iOS弹幕库OCBarrage - 高效处理每秒5000条大量弹幕

要求

此库需要iOS 8.0+和Xcode 8.0+。

许可

OCBarrage在MIT许可下提供。有关详细信息,请参阅LICENSE文件。

社区

QQ群:263384911



中文介绍

iOS弹幕库OCBarrage,同时渲染5000条弹幕也不会卡顿,轻量级,可扩展,高度自定义动画,超高性能,简单易用。OCBarrage底层使用Core Animation驱动,Core Graphics绘图,GPU渲染,性能极高,即使是同时渲染5000条弹幕也不会感觉到卡顿。可以自定义各种属性动画及路径动画,满足您对动画的多样化需求。

安装

CocoaPods

  1. 在 Podfile 中添加 pod 'OCBarrage'
  2. 执行 pod installpod update
  3. 导入 "OCBarrage.h"。

手动安装

  1. 下载 OCBarrage 文件夹内的所有内容。
  2. 将 OCBarrage 内的源文件添加(拖放)到你的工程。
  3. 导入 OCBarrage.h

文档

你可以在 iOS弹幕库OCBarrage-如何hold住每秒5000条巨量弹幕 查看代码结构, 原理及用法. 有问题大家可以留言!

使用用法

  • 第一步

为新的弹幕类型新建一个数据模型 例如:OCBarrageWalkBannerDescriptor. 这个类必须继承自OCBarrageDescriptor类.

OCBarrageWalkBannerDescriptor.png

这样就创建新的弹幕类型的数据模型类, 我们可以在这个类里面添加新的弹幕属性例如:bannerLeftImageSrc, bannerMiddleColor, bannerRightImageSrc等等.

  • 第二步

为新的弹幕类型创建建一个数据展示视图例如:OCBarrageWalkBannerCell. 这个新的弹幕类型的展示视图必须继承自OCBarrageTextCell类.

OCBarrageWalkBannerCell.png

在这个新的展示视图里我们可以添加展示相应数据的子视图,例如:leftImageView, middleImageView, rightImageView. 并为这个新的视图类添加一个相应的数据模型类的属性OCBarrageWalkBannerDescriptor *walkBannerDescriptor来传递数据.

  • 第三步: 重写新视图OCBarrageWalkBannerCell- (void)setBarrageDescriptor:(OCBarrageDescriptor *)barrageDescriptor方法. 并只能在这个方法里为walkBannerDescriptor属性赋值, 在这个方法里必须要调用[super setBarrageDescriptor:barrageDescriptor]方法, 不然barrageDescriptor属性将没有值, 并且部分属性设置将不生效.OCBarrageCell本身有一个barrageDescriptor属性引用数据模型. 但是为了方便拓展我们选择在第二步里为OCBarrageWalkBannerCell添加一个新的数据属性walkBannerDescriptor. 实质上OCBarrageWalkBannerCellbarrageDescriptor属性和walkBannerDescriptor指向的是同一个walkBannerDescriptor对象.

setBarrageDescriptor.png

  • 第四步

重写新视图OCBarrageWalkBannerCell- (void)updateSubviewsData方法. 渲染引擎在渲染弹幕视图之前会自动调用这个方法. 我们可以在这个方法里为子视图设置数据

updateSubviewsData.png.

  • 第五步

在第四步设置好子视图的数据之后就可以计算并设置子视图的大小和位置.重写- (void)layoutContentSubviews方法, 并在这个方法里布局子视图的位置.渲染引擎会在调用- (void)updateSubviewsData方法之后自动调用- (void)layoutContentSubviews方法, 这个方法必须在主线程执行.

layoutContentSubviews.png

  • 第六步

在布局好子视图的位置之后,如果想要提高性能可以调用- (void)convertContentToImage方法,将可图像化的视图合成一张图片展示在cell的layer上,渲染引擎会在调用- (void)layoutContentViews方法之后自动调用- (void)convertContentToImage方法,这个方法必须在主线程执行。

convertContentToImage.png

如果不想将子视图的内容转换为图片,只需重写- (void)convertContentToImage并留空即可

convertContentToImage.png

  • 第七步

如果想要进一步优化内存和性能,可以重写- (void)removeSubViewsAndSublayers方法,删除之前添加的subView和sublayer,并将子视图置为nil

removeSubViewsAndSublayers.png

如果既要提高性能,又有一些无法图像化的内容(例如:gif)需要展示,可以重写- (void)removeSubViewsAndSublayers方法,但不调用[super removeSubViewsAndSublayers]方法,并选择性地删除一些子视图,保留一些子视图。

如果不想删除子视图,只需重写- (void)removeSubViewsAndSublayers方法并留空即可

removeSubViewsAndSublayers.png

系统要求

该项目最低支持 iOS 8.0Xcode 8.0

注意

为了保证您在使用过程中尽量减少不必要的麻烦,强烈推荐您查看详细文档

许可证

OCBarrage 使用 MIT 许可证,详情见 LICENSE 文件。

社区

欢迎加群讨论 QQ群:263384911