直播App越来越值得市场关注,那么我们也要越来越关注直播的需求。
做为一名开发菜鸟,不得不跟随市场的发展而努力的学习。
打工也要认真,没错就是这句话。
回到正题:
本菜鸟再做直播项目的一些分享共勉 . . .
今天教你一步步实现直播间评论效果功能 . . .
首先,look 需求 :
每当有人进入房间、评论、送礼物、第一次点赞直播消息时,消息列表都要及时显示并有从下往上滑动的效果。效果如下:
怎么实现呢,怎么实现呢 。。。
消息列表,必定是一个UITableView,每个消息是一个cell,每次接收到一条消息立刻添加到数据数组中,同时刷新UITableView,滚动到底部。
没错思路就是这样,但是问题来了. . .
你每次都去刷新 . . . 即使UITableView有复用机制,也还是不行的,整个效果有一闪一闪的。You可以试一下就知道了。😄
那么不能刷新,我们就用插入第n行,并且滚动到第n行
没错 . . . 没错 . . . 就是这样实现效果了 . . .
代码如下:
[_dataArray addObject:chatModel];
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:_dataArray.count-1] withRowAnimation:UITableViewRowAnimationNone];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:_dataArray.count-1];
[_tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionBottom];
再看一下我们实现的效果图:不然文字看累了
是不是very happy ,但是别急,这种方法,你写了会发现实现了我们的功能了,但是还存在一个很小的问题,那就是:
消息只有屈指可数的两三条的时候,它并没有从下往上一直顶上去,而是直接一直显示,没有动画效果。
原因,在于消息所在的高度还不过我们设置UITableView的高度,滚动到第n行的时候并没有效果。
那么我们换一个思路,来实现,那就是从下往上添加数据。😁😄
这样不管你数据多少都会有动画。
再来看一下我们实现的效果图,不然文字又看累了😁
那么实现的思路就是,我们一直添加到数据源的第一条,这样不管数据多少,是不是都会有动画效果,脑袋里想象一下,答案是肯定的。
那么问题又来了,一直往第一条添加,是有动画了,但是他是从上往下的啊 . . . 啊 . . .
从上往下就从上往下,我们给所有的区域旋转180度,不就变成了从下往上了。
厉害了我的哥啊,真的可以实现,代码怎么写呢。
不急 . . . 代码来了 . . . You look . . .
[_dataArray insertObject:chatModel atIndex:0];
[self.tableView insertSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationTop];
注意咯:数据我们是一直加在第一条的位置。
look 旋转180
_tableView.transform = CGAffineTransformMakeScale(1, -1);
然后单单把UITableView旋转,你会发现,还有问题啊. . . 啊 . . .
什么问题 ? 什么问题 ?
文字内容翻转了 。 。 。
那我们在把文字内容的视图在旋转180,即cell旋转180
self.contentView.transform = CGAffineTransformMakeScale(1, -1);
没错就是这样,重要代码 . . . 全部在这里了 . . .
效果图 . . . 找不到上传GIF的地方 . . . 只能看上面的图片 . . .
满意了吧,如果还实现不了,那么就留下怎么联系你吧
或者直接留言,让本菜鸟试试 . . .
不喜勿喷,大神多多指教,谢谢。