アプリの読み込みを遅らせてスプラッシュ画面を長く表示するにはどうすればよいですか?
6 に答える
アプリを通常どおり起動し、表示される最初のビューにスプラッシュ スクリーンと同じ画像を表示する必要があります。タイマーを開始し、数秒後にそのビューを実際のアプリケーション ルート ビューに置き換えます。
実際のアプリケーションの起動を故意に遅らせることは、大したことではありません。
更新:真剣に、これをしないでください!
または、C関数を使用します
sleep(9);
これを applicationDidFinishLaunching: に入れると、プログラムが 9 秒間一時停止します。他の整数を入力することもできます。
編集:私は昨年、多くのことを学びました。これをしないでください。その理由は、時間がかかりすぎると、スプリングボードがアプリの起動を自動的に停止するためです。そのタイミングは十分に文書化されていないため、1 秒でもアプリが失敗する可能性があります。
この質問は似ています:タップ タップ リベンジ 3 のようなスプラッシュ スクリーン
基本的に、アプリケーションのDidFinishLaunching: で、Default.png を含む他のビューの上に画像ビューを追加します。
この方法でアプリの読み込みを遅らせてはいけない理由については、上記の説明を参照してください。ただし、ビューを切り替えるオーバーヘッドよりも短時間スリープする方が望ましいシナリオが発生した場合は、sleep() の代わりにNSThread のsleepForTimeIntervaleを使用します。よりフレームワークに優しく、スリープ時間をより細かく制御できます。
[NSThread sleepForTimeInterval:0.75]
クライアントが起動イメージのデモを行わなければならない状況がありました。だから、これが私の解決策でした..
- (void)applicationDidBecomeActive:(UIApplication *)application
{
UIImageView *defaultImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default@2x.png"]];
[self.window addSubview:defaultImageView];
sleep(2);
[defaultImageView removeFromSuperview];
[defaultImageView release];
/*
Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
*/
}
sleep メソッドを使用して、この結果を取得できます」
sleepForTimeInterval
"、起動時間を取得したい場合は、次のようにします。
- (void) applicationDidFinishLaunching:(UIApplication*)application
{
[NSThread sleepForTimeInterval:8.0];
}
発射を8秒遅らせます
警告 : ただし、アプリの読み込みに長時間かかるため、Apple は推奨していません。アプリが強制終了される可能性があります。ただし、特定のスクリーンショットを取得したり、社内で使用したりする必要がある場合は、目的のために解決するために使用できますが、アプリの提出には使用できません。