BarrageRenderer icon indicating copy to clipboard operation
BarrageRenderer copied to clipboard

弹幕过程中,弹出键盘飘动的文字会明显卡顿一下,这个要怎么解决。

Open xy853535182 opened this issue 8 years ago • 6 comments

因为我显示弹幕的页面底下有个输入框,当激活输入框弹起键盘,可以明显的感觉到飘动的弹幕文字会明显卡顿一下,这个能解决吗?

xy853535182 avatar Feb 17 '17 06:02 xy853535182

看了一下源码,弹幕文字的动画是通过注册CADisplayLink 指定update方法不停的改变的x和y坐标实现动画的,但是UITextField键盘事件的优先级比CADisplayLink事件高,runloop被添加进来了一个高优先级的任务,CADisplayLink下一次的调用就会被暂停转而先去执行高优先级的任务,然后在接着执行CADisplayLink的调用,从而造成动画过程的卡顿,使动画不流畅。作者能帮忙解决一下这个问题吗,建议动画能改成用CABasicAnimation的形式,估计能解决此问题。

xy853535182 avatar Feb 17 '17 09:02 xy853535182

BarrageRenderer 没有用 CAAnimation,现有思路下不可能改成 CAAnimation 实现方式。目前 CADisplayLink 使用的是 RunLoopCommonModes,这已经是一个高优先级了。卡顿很严重吗?

unash avatar Feb 18 '17 00:02 unash

很严重倒是不会,就是弹起键盘的时候卡顿一下,强迫症感觉难受,不是很完美,我这边QA也给提了bug,寻思着你这边能否给予修复。你可以github上的demo下载下来加个输入框感受一下。

xy853535182 avatar Feb 20 '17 02:02 xy853535182

我也遇到了这样的问题,键盘弹起时,弹幕突然停顿了一下。

chakery avatar May 20 '17 08:05 chakery

对呢,这个问题能不能修改一下,毕竟影响到了用户体验

hahaGitHub avatar Jul 03 '17 05:07 hahaGitHub

@xy853535182 键盘停顿的问题解决了吗??

langlang1015 avatar Mar 23 '18 09:03 langlang1015