ios 弹幕实现及封装

来源:互联网 发布:淘宝买手机走什么网 编辑:程序博客网 时间:2024/04/30 08:01

周末看了个介绍弹幕实现的视频,看完后,按自己的想法又重新设计、实现了一遍(感觉视频中的实现有些复杂化了,设计上也存在些问题),并封装了一下传到了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地址:

点击打开链接


0 0
原创粉丝点击