当UIScrollView滚动时,CADisplayLink会停止更新

Tri*_*cky 16 iphone cocoa-touch core-animation objective-c

标题是非常自我解释的,但我在CADisplayLink触发的循环中完成了一些动画.但是,只要我滚动了一个UIScrollView,我已添加到我的视图层次结构中,动画会立即停止,只有在滚动完全停止并再次停止时才会再次返回....

无论如何要取消这种行为?

nor*_*gon 29

您还可以使用以下代码NSRunLoopCommonModes来减轻此问题的影响NSDefaultRunLoopModes:

[displayLink addToRunLoop:[NSRunLoop currentRunLoop]
                  forMode:NSRunLoopCommonModes];
Run Code Online (Sandbox Code Playgroud)


Eon*_*nil 7

使用UITrackingRunLoopMode.它专为滚动内容而设计.

否则,只需调用render和present routine -scrollViewDidScroll.

UIScrollView损坏并停止使用OpenGL渲染滚动(相关的CADisplayLink,NSRunLoop)


Ste*_*eld 6

使用-addToRunLoop:forMode:另一个运行循环在另一个线程上运行显示链接(使用).因此,创建一个新线程,在该线程上创建一个运行循环,并在该线程/运行循环上运行CADisplayLink.