如何在React-Native
?
在原生iOS中,我这样做:
CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector(tick:)];
[link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];
或者,如何在React-Native
中跟踪屏幕渲染?
答案 0 :(得分:2)
Reactive native在内部使用CADisplayLink
在JS线程上执行帧更新。所以理论上你所做的一切都与屏幕的刷新率同步。
您可以使用Animated库(如果您希望通过拖动移动对象,也可以使用PanResponder),并且可以达到60fps。
如果仍然无法满足您的需求,您可以随时创建一个新的原生组件,并使用自己的显示计时器进行自己的渲染。
答案 1 :(得分:-1)
也许这些计时器功能会有所帮助......
requestAnimationFrame(fn)与setTimeout(fn,0)不同 - 前者将在所有帧刷新后触发,而后者将尽快触发(在iPhone 5S上每秒超过1000x)。
setImmediate在当前JavaScript执行块的末尾执行,就在将批量响应发送回本机之前。请注意,如果您在setImmediate回调中调用setImmediate,它将立即执行,它不会在两者之间回复原生。
Promise实现使用setImmediate作为其异步原语。