ios 弹幕实现及封装
2016-11-28 20:26
357 查看
周末看了个介绍弹幕实现的视频,看完后,按自己的想法又重新设计、实现了一遍(感觉视频中的实现有些复杂化了,设计上也存在些问题),并封装了一下传到了git上,可以实现弹幕的开始、暂停与停止的基本功能。本身使用十分方便,内部逻辑比较简单,且有比较详细注释,主要为了方便使用者的二次定制开发与修改
ZBarrage
ZBulletView
git地址:
点击打开链接
ZBarrage
@interface ZBarrage : NSObject //弹幕是否处于播放中(暂停也属于播放中) @property (nonatomic,readonly) BOOL isPlaying; //弹幕是否被暂停 @property (nonatomic,readonly) BOOL isPaused; //当所有弹幕播放完成时回调 @property (nonatomic,copy) void(^allBulletsFlyFinishBlk)(); //初始化方法 //参数:弹幕数据数组 -(instancetype)initWithComments:(NSMutableArray *)comments; //生成弹幕视图 //参数:视图frame、弹道数、播放持续时长 -(UIView *)generateBarrageView:(CGRect)frame trackNum:(int)trackNum flyDuration:(CGFloat)duration; //开始、暂停播放 -(void)startPlay; //停止播放 -(void)stopPlay; @end
ZBulletView
//子弹状态 typedef enum { FlyStart,//开始飞行 FlyAppeared,//正好完全飞入屏幕 FlyEnd//飞行结束 }FlyStatus; @interface ZBulletView : UIView //飞行状态回调 @property (nonatomic,copy) void(^flyStatusBlk)(FlyStatus flyStatus); //子弹所在轨道 @property (nonatomic,readonly) int trackNum; //初始化方法 //参数:子弹frame 子弹内容 子弹飞行时长 子弹所在轨道 -(instancetype)initWithFrame:(CGRect)frame comment:(NSString *)comment flyDuration:(CGFloat)duration trackNum:(int)trackNum; //开始飞行 -(void)startFly; //停止飞行 -(void)stopFly; //暂停飞行 -(void)pauseFly; //恢复飞行 -(void)resumeFly; @end
git地址:
点击打开链接
相关文章推荐
- iOS 中 AES256 的实现 - 更喜欢 C 实现,OC 封装的风格
- ios-数据库-sqlite-数据库得封装(自己写得,有很多不严谨)最后还有一个单例得实现
- IOS动画实现(3)UIView封装的动画
- 图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现
- 对iOS的UIWebView的封装,实现与html5的交互
- iOS开发架构封装异步请求案例实现
- 微软云平台媒体服务实践系列 1- 使用静态封装为iOS, Android 设备实现点播(VoD)方案
- IOS 纯代码实现视图控制器的封装
- 图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现
- iOS之旅--用CollectionView实现轮播图效果+封装方法
- 图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现
- [IOS]对UITableView的简单封装,实现了下拉放大头部图片的效果
- IOS实现自动循环滚动广告--ScrollView的优化和封装
- 简单封装sqlite3 实现实体对象与关系型数据库的相关操作【IOS】
- iOS NSOperation 封装 通知实现界面更新
- 图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现
- IOS实现自动循环滚动广告--ScrollView的优化和封装
- iOS弹幕基本实现及原理介绍
- IOS之UITableView实现Section独立封装
- 笔记-iOS弹幕(源码)实现原理解析