BarrageRenderer icon indicating copy to clipboard operation
BarrageRenderer copied to clipboard

界面中同时有弹幕和 UITableView 动画的时候,弹幕卡顿

Open adow opened this issue 8 years ago • 2 comments

我的界面中同时有弹幕和传统聊天那种的消息列表显示,当接收到一条消息的时候,列表和弹幕会同时显示出来。我发现当 UITableView 更新的时候,弹幕就会卡一下。后来我去掉了 UITableView 显示,弹幕就正常了。在大批量出现消息的时候,这个卡顿就非常明显了。

在 UITableView 更新的时候,我使用 insertRows(at:with:) 动画,我以为是动画的问题,然后我尝试用没有动画的方式来更新 UITableView,或者直接 reloadData(),也没有任何的改善。

请问有什么办法来优化这种情况吗?

adow avatar Jul 07 '17 02:07 adow

应该是和 #52 类似的问题,和 runloop mode 的优先级有关。 后面有时间我会研究一下想办法做些优化,可能不会很及时。 针对你的问题,粗糙的解决方案,就是将弹幕延时个半秒左右再 receive,避开与 tableView 争夺资源。 你试试。

unash avatar Jul 07 '17 03:07 unash

恩先这样做了,谢谢

adow avatar Jul 07 '17 03:07 adow