最近终于比较有空了,可以写点自己的东西了,看到弹幕好好玩就跟着写了一个简单的弹幕效果,可自动追加评论,可暂停,可循环,可随机出现,效果如下,是不是瞬间觉得有弹幕的评论高大上了?
最终效果图
- 其中
BullerView
就是弹幕的视图,继承UIView
,每一条弹幕都是一个BullerView
,这里默认实现的是3个弹道(可以自己修改)。 - 如何让弹幕动起来呢?利用动画
options
的UIViewAnimationOptionCurveLinear
枚举,该枚举表示时间曲线函数,匀速
__block CGRect frame = self.frame;
[UIView animateWithDuration:duration delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
frame.origin.x -= wholeWidth;
self.frame = frame;
} completion:^(BOOL finished) {
[self removeFromSuperview];
if (self.moveStatusBlock) {
self.moveStatusBlock(End);
}
}];
- 评论字数越多的速度越快,这是根据
v = s/t
,时间相同的情况下,距离越长,速度越快。 -
BullerView
通过Block
回调弹幕状态。 -
BulletManager
是管理弹幕的数据源,开始啊,结束啊
Demo地址:https://github.com/huicongfu/BarrageDemo