アプリを起動すると、すべてのアセットが初期化されるとすぐにLaunchScreen.xibが削除されます。iOS:起動画面を遅らせる方法は?
起動画面を少なくとも1秒間維持したいです。
これを達成する方法はありますか?
ありがとうございました!
アプリを起動すると、すべてのアセットが初期化されるとすぐにLaunchScreen.xibが削除されます。iOS:起動画面を遅らせる方法は?
起動画面を少なくとも1秒間維持したいです。
これを達成する方法はありますか?
ありがとうございました!
LaunchScreenストーリーボードを使用し、applicationDidFinishLaunching
またはapplicationWillFinishLaunching
にアニメーション化されていない表示コントローラーを作成し、必要に応じていつでも閉じることができます。
これは、あなたのアプリが起動に時間がかかりすぎるという印象を与えるため、これはAppleによって推奨されないことに注意してください。これはユーザーエクスペリエンスが悪く、ユーザーの一部がアプリケーションを削除する可能性があります。あなたはシンプルに行きたい場合は
私はこの回答を受け入れていますが、それは私が望んでいたものではありません。私はAppleが最小時間の設定を許可することを望んでいた。ユーザは200ミリ秒間何かを見て幸せではなく、それが何かを理解する前に消えてしまったからだ。 – ishahak
起動画面は内容を表示するように設計されていないので、 Appleは実際には、あなたの起動画面がコンテンツなしでアプリケーションのメインビューであることを反対に示唆しています。あなたのロゴをどこかに表示したい場合は、ファンシーな 'About'スクリーンを作ることができます。ここには、起動画面のAppleのHIGがあります。 https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html – EmilioPelaez
、あなたはNSThread
を使用することができます。
[NSThread sleepForTimeInterval:(NSTimeInterval)];
あなたはapplicationDidFinishLaunching
方法の最初の行にこのコードを置くことができます。
たとえば、default.pngを1.0秒間表示します。
- (void) applicationDidFinishLaunching:(UIApplication*)application
{
[NSThread sleepForTimeInterval:1.0];
}
1.0秒間スプラッシュ画面が停止します。
私はこれについての私の考えのチップ、私はコメントを書いたかったが、多くの行を許可しません。私は、多くのアプリ開発者がこれをやりたがっていると考えています(ローンチ画面を遅らせる)というのは彼らの会社のためにアプリ/ゲームのブランドプレゼンスを構築したいからです。
Rick Maddyが他の回答の1つのコメントセクションで説明したように、起動画面はそれ用に設計されていません。起動画面の目的は、実際のデータが背面に表示されている間に空のUIを表示することで、アプリケーションが即座に実行されているように感じさせることです(willAppearなど)。
だから、多くの開発者が望むものを達成するために、インラインAppleのHIGでありながら、何を行うことができますすることです:アップルHIGによって意図したとおりにlaunchscreenで
- 表示UIテンプレート。
- メイン画面が表示されたら、ブランドの「紹介」を示す別のVCを読み込みます。これが一度だけ実行されていることを確認してください( の単純なフラグ、NSUserDefaultsがそのトリックを行うべきです)。
- 長い「イントロ」の場合、ユーザーはこれをスキップする必要があります。
同じ「イントロ」VCはどこか(多分についてのページで)「ビューイントロ」ボタンをタップすることで、ユーザに利用可能であるべきです。あなたには、いくつかの時間間隔でスリープモードのスレッドを送信することはできませんが、その時は何のいずれかのアクションがメインスレッドで
- (void) applicationDidFinishLaunching:(UIApplication*)application{[NSThread sleepForTimeInterval:5.0];}
。これを行うと、実際のiOSの起動に時間がかかりすぎてのためにアプリを殺すために引き起こす可能性が
は、メインスレッドでスリープ状態にはなりませんが、これは答えではありません – tommybananas
決して睡眠を行うことができ、画面をホールドするため
スウィフト4アップデート
だけappdelegate
クラスのdidfinishLauching....
の方法でコード Thread.sleep(forTimeInterval: 3.0)
の1行を書きます。
例
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
Thread.sleep(forTimeInterval: 3.0)
// Override point for customization after application launch.
return true
}
これを再考。ユーザーはアプリを使用したいが、起動画面を凝視しない。 – rmaddy
クレジット/ライセンスのスプラッシュ画面を表示する必要があるゲームやその他のエンターテイメントコンテンツに対しては、このアプローチを「予約する」ことしか推奨しません。それ以外の場合は、アプリをできるだけ早く起動するようにします。 –