自从我将手机更新到 iOS 11 后,我注意到我的 React Native 应用程序在启动屏幕和应用程序的第一个屏幕之间短暂(<0.5 秒)闪烁为白色。这是特别明显的,因为我的应用程序有一个黑色的背景和一个黑色的启动屏幕。
我一开始以为我可能忘记了某个地方有一个白色背景的视图,但是当我创建一个全新的应用程序并将启动屏幕设置为红色并将默认 App.js(欢迎使用 React Native...)的背景设置为红色时,这也很明显。
需要明确的是,这发生在打包发布版本中。从远程打包程序加载时,我会接受调试版本中的一些延迟,但我以前在发布版本中没有这个问题。
还有人遇到这个烦人的问题吗?
好的,我想我发现了问题。在 AppDelegate.m 中,rootView 默认具有白色背景色,当我启动应用程序时,它会从以下位置转换:启动屏幕 -> rootView -> React Native 视图。
在 iOS 10 上,我从未看到 rootView 闪过,但在 iOS 11 上,RN 视图加载之前似乎有很短的延迟。我不确定为什么会在 iOS 11 而不是 10 上发生这种情况,但您可以通过以下任一方式解决此问题:
您可能会开始在启动画面和根应用程序视图的显示之间看到白屏闪烁。尝试这个
将启动屏幕设置为RCTRootView
加载视图
AppDelegate.m
// Place this code after "[self.window makeKeyAndVisible]" and before "return YES;"
UIView* launchScreenView = [[[NSBundle mainBundle] loadNibNamed:@"LaunchScreen" owner:self options:nil] objectAtIndex:0];
launchScreenView.frame = self.window.bounds;
rootView.loadingView = launchScreenView;
Run Code Online (Sandbox Code Playgroud)
更多信息
https://facebook.github.io/react-native/docs/running-on-device#pro-tip
归档时间: |
|
查看次数: |
3607 次 |
最近记录: |