解决方案说明,不是问题。
当 UIScrollView
注册到 CADisplayLink
时,CADisplayLink
通过防止触发 NSDefaultRunLoopMode
tick 来暂停 OpenGL 渲染。
但是,如果您使用 NSRunLoopCommonModes
来解决这个问题,UIScrollView
将在突发滚动时停止滚动。一旦停止,它就不会再次滚动。 ( splinter 的)
并在其他线程/运行循环中注册 CADisplayLink(如该问题的回答中所述: CADisplayLink stops updating when UIScrollView scrolled )减少了 UIScrollView 行为破坏,但无法消除。
最佳答案
使用 UITrackingRunLoopMode
。它专为滚动内容而设计。
否则,在 -scrollViewDidScroll
也调用渲染和呈现代码,而不仅仅是在 CADisplayLink
的刻度回调中。
关于ios - UIScrollView 损坏并停止滚动 OpenGL 渲染(相关 CADisplayLink、NSRunLoop),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4135229/