【iOSアプリ】スプラッシュの登録、設定方法のメモ(iOS13対応)

2020.05.13

iOSアプリのスプラッシュを設定する方法

 

こんにちは、せんだです。

 

タイトルの通りですが、今回はiOSアプリのスプラッシュの設定方法について書いてみたいと思います。

 

iOSアプリの申請時にiPad対応が必須となった事やデバイスサイズの多様化、OSやXcodeのバージョンアップ等々の理由でスプラッシュの設定方法も変わってきているようなので、ここいらでちょっとまとめてみようかなーって感じです。

 

 

環境情報

  • macOS Catalina(10.15.3)
  • Xcode 11.4.1
  • Swift 5.1
  • iOS 13.4.1

 

全体の流れ

  1. スプラッシュ画像を用意する
  2. スプラッシュ画像を登録する
  3. スプラッシュ画像をUIImageViewに設定する
  4. スプラッシュの表示時間を調整する

 

それではやってみます。

 

1. スプラッシュ画像を用意する

まずは、必要なサイズの画像を用意します。

今回は以下のサイズを用意しました。

 

 デバイス  サイズ(横 × 縦)
 iPhone  828 × 1792
 1125 × 2436
 1242 × 2688
 iPad  768 × 1024
 1536 × 2048

 

2. スプラッシュ画像を登録する

画像の用意ができたら、Assets.xcassetsに登録します。特に命名規則とかはないようですね。

最初はUniversalにだけ登録してみたのですが、それだけだとiPadで表示した際に結構小さく表示されたのでiPhoneとiPadを別々に登録しました。

 

※とりあえずこれでやってみたら、iPhoneでもiPadでも良い感じに表示されたという結果論なので、間違ってる部分もあるかもしれません。

 

用意した画像をそれぞれ左から小さい順に登録しておきます。

Assets1

 

 

 

 

 

 

 

3.スプラッシュ画像をUIImageViewに設定する

プロジェクト作成時に自動で作成されるLaunchScreen.storyboardを使います。

手順としては

 

  1. UIImageViewを配置後する
  2. 配置したUIImageViewのimageに先ほどAssets.xcassetsに登録した画像を選択する
  3. 「Add New Alignment Constraints」の制約に Horizontally in container = 0、Vertically in Container = 0 を設定する

 

その後、プレビュー表示するとそれっぽく表示される事が確認できます。

 

iPad Pro 12.9

assets ipad

 

iPhone11 Pro Max

assets iphone

 

 

スプラッシュの表示時間を調整する

おそらく幾つかの方法があると思うのですが、その中で一番簡単だと思われる方法を紹介します。

AppDelegate.swiftにsleep処理をいれる事でスプラッシュの表示時間の調整が可能です。

 

1
2
3
4
5
6
7
8
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        // スプラッシュを1秒表示する
        sleep(1)
       

        return true
    }

 

 

まとめ

今回はiOSアプリのスプラッシュの設定方法についてまとめてみました。

以前はLaunch Imageに全てのイメージを登録すればよかったようなのですが、iOS13からその方法は非推奨になったようです。

今回紹介した方法でも全てのデバイスにピタっとはまる訳ではない為、改善点はあるかと思いますがスプラッシュ登録時の参考にしていただければと幸いです。

 

それでは!


Top