我的app启动页面是用的图片,如下图。
但是每次启动的时候,启动图片结束后会黑屏1秒左右才进入主页面,这是为什么呢?而且奇怪的是,并不是次次都黑屏,有时候又不黑屏。
光阴似箭催人老,日月如移越少年。
ロードされたホームページが初期化されるときに、同期的に実行されるデータ読み取り操作があり、これにより UI スレッドがブロックされ、UI が一時的に黒画面になります。それを非同期に変更するだけです。
時間がかかりすぎたのではないかと思います。
appDelegate の didFinishLaunchingWithOptions の最初の行のタイムスタンプとホームページの viewDidAppear のタイムスタンプを出力して、2 つの差が長すぎるかどうかを確認できます。データベースの読み取りと書き込み、大きなファイルのロードなど、メインスレッドで時間のかかる操作はありますか。
didFinishLaunchingWithOptions
場合によっては対処が難しいバグもあります。最初のインターフェイスの ViewController が ViewAppear の前にメイン スレッドをブロックするようなことをしましたか? そうでない場合は、まず LaunchScreen を StoryBoard ファイルに割り当ててから、LaunchScreen を埋めてみてください。写真付き
ウィンドウの rootViewController は設定されていますか?
黒い画面は、rootVC インターフェイスが表示されていないか、黒いか空であることを意味します。 rootVCビューを赤などの目立つ色に設定して状況を確認することをお勧めします
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];self.window.backgroundColor = [UIColor WhiteColor];self.window.rootViewController = XXX; [self.window makeKeyAndVisible];
デバイスの画面サイズに対応した起動ページはありませんか?
スタートアップ ページが読み込まれていません。lanuchimage を使用せず、StoryBoard を作成してそこに写真を配置すれば問題ありません。
私も同じ問題を抱えています。LaunchImage では、プログラムが再起動されると、ページが表示され、画面が黒く点滅します。
ロードされたホームページが初期化されるときに、同期的に実行されるデータ読み取り操作があり、これにより UI スレッドがブロックされ、UI が一時的に黒画面になります。それを非同期に変更するだけです。
時間がかかりすぎたのではないかと思います。
appDelegate の
didFinishLaunchingWithOptions
の最初の行のタイムスタンプとホームページの viewDidAppear のタイムスタンプを出力して、2 つの差が長すぎるかどうかを確認できます。データベースの読み取りと書き込み、大きなファイルのロードなど、メインスレッドで時間のかかる操作はありますか。場合によっては対処が難しいバグもあります。最初のインターフェイスの ViewController が ViewAppear の前にメイン スレッドをブロックするようなことをしましたか?
そうでない場合は、まず LaunchScreen を StoryBoard ファイルに割り当ててから、LaunchScreen を埋めてみてください。写真付き
ウィンドウの rootViewController は設定されていますか?
黒い画面は、rootVC インターフェイスが表示されていないか、黒いか空であることを意味します。 rootVCビューを赤などの目立つ色に設定して状況を確認することをお勧めします
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.backgroundColor = [UIColor WhiteColor];
self.window.rootViewController = XXX;
[self.window makeKeyAndVisible];
デバイスの画面サイズに対応した起動ページはありませんか?
スタートアップ ページが読み込まれていません。lanuchimage を使用せず、StoryBoard を作成してそこに写真を配置すれば問題ありません。
私も同じ問題を抱えています。LaunchImage では、プログラムが再起動されると、ページが表示され、画面が黒く点滅します。