1

アプリの起動時に、 に直接描画し、CGBitmapContextに変換してからCGImage、 のビューのレイヤーに設定しviewDidAppearます。

これは実際には非常に高速ですが、Apple は起動イメージをアプリに追加する必要があるため、起動イメージとして画面がどのように見えるかの静的イメージを追加しました。

しかし、次に起こることは、アプリを起動するとLaunchイメージが表示されますが、0.5〜1秒後に画面が空白になり、viewDidLoadキックインしviewDidAppearて実行を開始したためだと思いますが、最初は画面がすべて空白。

その後、0.5 秒後にすべてが表示されますが、これにより白い画面の「フラッシュ」が作成されます。

したがって、少なくとも2つのオプションがあるように見えます。

  1. 起動画像を完全に空白にするだけですが、「アプリが最初にどのように見えるかの静的画像」が必要なため、Appleがアプリを拒否するかどうかはわかりません...しかし、最初の画像がすぐに表示されるのだろうか(0.5~1秒、それでもいいですか?)

  2. もう 1 つのオプションは、すべての図面を から に移動することですviewDidAppearが、一部の情報がに欠けているviewDidLoadことがわかりました。viewDidLoadself.view.boundsviewDidLoad{{0, 0}, {768, 1004}}{{0, 0}, {320, 460}}viewDidAppear

そのため、一部のビュー情報がまだ正しく設定されていないと思いますviewDidLoad。これはジレンマです。1 つの方法は、iPad か iPhone かを確認してself.view.bounds値をハードコードすることですが、これを行うためのより良い方法はありますか?

4

1 に答える 1

2

viewWillAppear 中に開始するバックグラウンド スレッドで CGImage を作成すると、寸法が得られます。

おそらく、viewDidLoad のビューの背景を起動イメージと同じに設定して、CGImage を描画している間、ユーザーにちらつきが見えないようにします。

于 2012-08-17T20:49:14.627 に答える