离职的最后一天,在公司学习下弹幕的制作.基于OC.
主要思路:
1.首先建一个弹幕类BulletView,基于UIView,然后在该类上写个UIlabel,用于放置弹幕文字,然后前端放置一个UIImageView,放置用户头像.该类主要绘制UI和动画.
2.其次建立一个弹幕的管理类BulletManager,主要管理弹幕数据源,随机分配弹幕轨迹,根据不同状态(start,enter,end)做不同处理,该类主要负责逻辑部分.
其中,在弹幕类BulletView中写一个回调,负责回调当前弹幕的状态(start,enter,end)给管理类BulletManager;在管理类BulletManage写一个回调,负责回调弹幕视图给ViewController.
弹幕类:
BulletView.h
1 // 2 // BulletView.h 3 // danMu 4 // 5 // Created by Shaoting Zhou on 2017/9/11. 6 // Copyright © 2017年 Shaoting Zhou. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h> 10 typedef NS_ENUM(NSInteger,MoveStatus){ 11 Start, 12 Enter, 13 End, 14 }; 15 @interface BulletView : UIView 16 @property (nonatomic,assign) int trajectory; //弹幕弹道 17 @property (nonatomic,copy) void(^ moveStatusBlock)(MoveStatus status); //弹幕状态回调 开始 运行中 结束 18 19 -(instancetype)initWithCommentDic:(NSDictionary *)dic; //初始化弹幕 20 21 -(void)startAnimation; //开始动画 22 -(void)stopAnimation; //结束动画 23 24 @end