20

When launch an app, the LaunchScreen.xib is removed as soon as all the assets are initialized.

I want to make the launch screen stay for at least 1 sec.

Is there a way to achieve this?

Thank you!

4

6 に答える 6

28

LaunchScreen ストーリーボードを使用するビュー コントローラーを作成し、それを (アニメーション化せずに)applicationDidFinishLaunchingまたはapplicationWillFinishLaunchingに表示し、いつでも閉じることができます。

これは、アプリの起動に時間がかかるという印象を与え、ユーザー エクスペリエンスが低下し、一部のユーザーがアプリを削除する可能性があるため、Apple では推奨されていないことに注意してください。

于 2016-01-27T03:46:27.047 に答える
19

Swift 4 アップデート

in classThread.sleep(forTimeInterval: 3.0) のメソッドに1 行のコードを記述するだけ です。didfinishLauching....appdelegate

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    Thread.sleep(forTimeInterval: 3.0)
    // Override point for customization after application launch.
    return true
}
于 2018-01-01T17:05:28.663 に答える
2

これについて自分の考えを書き込んだと思ったので、コメントを書きたかったのですが、多くの行は許可されません。多くのアプリ開発者がこれを行いたい (起動画面を遅らせる) のは、会社のアプリ/ゲームのブランド プレゼンスを構築したいからだと思います。

そうは言っても、Rick Maddyが他の回答の1つのコメントセクションで説明したように、起動画面はそのために設計されていません。起動画面の目的は、実際のデータが背後で読み込まれている間 (willAppear など)、空の UI を表示することで、アプリがすぐに実行されていることをユーザーに感じさせることです。

したがって、多くの開発者が望んでいることを達成するために、Apple の HIG に沿って、次のことができます。

  1. Apple HIG の意図どおりに起動画面に UI テンプレートを表示します。
  2. メイン画面の読み込み時に、ブランドの「イントロ」を表示する別の VC を読み込みます。これが一度だけ実行されることを確認してください (NSUserDefaults の単純なフラグでうまくいくはずです)。
  3. 長い「イントロ」の場合、ユーザーはこれをスキップできます。

同じ「イントロ」VC は、どこか (おそらくページについて) の「ビュー イントロ」ボタンをタップすることで、ユーザーが利用できるようにする必要があります。

于 2016-11-13T05:20:07.123 に答える
1

シンプルに使いたい場合は、次を使用できますNSThread

[NSThread sleepForTimeInterval:(NSTimeInterval)];

このコードをapplicationDidFinishLaunchingメソッドの最初の行に入れることができます。

たとえば、default.png を 1.0 秒間表示します。

- (void) applicationDidFinishLaunching:(UIApplication*)application
{
   [NSThread sleepForTimeInterval:1.0];
}

スプラッシュ画面を 1.0 秒間停止します。

于 2016-01-27T03:49:59.007 に答える