質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

4867閲覧

iPad Proでアプリ起動時のスプラッシュ画像が正しく表示されない

msa_winnie

総合スコア17

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/04/19 09:02

実現したいこと・問題

Xcode(Swift)で簡単なアプリを作っています。
アプリ起動時のスプラッシュ画像を設定したいのですが、
正しく表示されない機種があり、困っている状況です。

内容

スプラッシュ画面の設定はImages.xcasssetsのLaunchImageで設定する方法を
採用しています。
以下のサイトを参考に画像を用意してセットしました。
https://majintools.com/2018/10/04/launchimage/

イメージ説明

シミュレーターで以下の機種を全てテストしたところ、iPad Pro(11-inch)とiPad Pro(12.0-inch)(3rd generation)で正しく表示されませんでした。(どちらもiOS12.2です。)

イメージ説明

iPad Pro(11-inch)とiPad Pro(12.0-inch)(3rd generation)では、
下の画像のように、上下が黒くなってしまい、
スプラッシュ画面からアプリのメイン画面に切り替わっても、
上下が黒いままです。

イメージ説明

試したこと

色々調べてみて、わかったことは以下の通りです。

①iPad Pro(11-inch)は、他のiPadとアスペクト比が異なる。他のiPadはだいたい4:3なのに対し、iPad Pro(11-inch)は199:139(約1.43:1)
<参考>https://wtpmj.com/?p=392

②LaunchImageではiPadの画像を設定するところは1箇所(1x,2x,縦,横)しかないため、そもそもXcodeで対応できていない?(いつか対応してくれる?)

その他に、
Images.xcasssetsのLaunchImageで設定する方法をやめて、
スプラッシュ画像の名前をDefault-Landscape-1194h@2x.pngという名前にしてプロジェクトに画像を直接追加するという方法も見つけましたが、うまくいきませんでした。

<参考>https://stackoverflow.com/questions/39900225/ios-launch-image-for-all-devices-include-ipad-pro

終わりに

iOSアプリ開発は初心者で、このようなQ&Aサイトに投稿するのは初めてというのもあり、分かりにくい内容でしたら申し訳ありません。
良いやり方をご存じの方がいらっしゃいましたら、ご教示のほどお願い申し上げます。

補足情報

Xcode:Version 10.2
Swift5
iOS12.2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

msa_winnie

2019/04/22 01:21

お返事が遅くなり申し訳ありません。 akaakoz様、教えていただきありがとうございます。 質問文に記載の通り、今回はLaunchScreen.storyboardを使わない方法でスプラッシュを設定しています。 以下の参考ページでいうと「①Images.xcasssetsのLaunchImageで設定する方法」の部分です。 https://qiita.com/k-boy/items/7de88a834bf01a6e858f なお、xcodeのプロジェクトのGeneralのApp Icon and Launch ImagesのLaunchScreenを空にしています。 上記の理由により、launchScreen.storyboardでのconstraints設定は必要ないように思うのですが、 間違いでしょうか? 理解が不十分なので、教えていただけたら嬉しいです。 よろしくお願いいたします。
akaakoz

2019/04/22 02:30

その方法でやったことないので、よく分かりませんが以下のスタックオーバーフローで同じような事を質問している人がいます。 https://stackoverflow.com/questions/28251281/found-black-space-on-top-and-bottom-xcode ベストアンサーに選べれていたのは Include Default images e.g Default.png,Default-568.png etc for all resolutions.This happens when app cannot find default image (デフォルトのDefault-568.pngを追加してください。これはアプリがデフォルトのイメージを見つけることが出来ないときに発生します)
msa_winnie

2019/04/22 04:27

akaakoz様、調べていただきありがとうございます。 以下の画像を用意して、プロジェクトに直接追加しましたが、何も変わりありませんでした。 ・Default.png (320 x 480) ・Default@2x.png (640 x 960) もう少し調べてみて、"LaunchScreen.storyboardを使わない方法"では解決できなさそうな場合は、 ”LaunchScreen.storyboard”を使う方法でやってみようと思います。 ありがとうございました。
msa_winnie

2019/04/25 07:30

補足です。 正しく表示されない機種でデバック実行をすると、起動時に以下のoutputがありました。 ------------------------------------------------ [ApplicationLifecycle] Windows were created before application initialzation completed. This may result in incorrect visual appearance. ------------------------------------------------
msa_winnie

2019/04/25 08:23 編集

akaakoz様、お世話になっております。 調べていただきありがとうございます。 >このバグは"LaunchScreen.storyboardを使わない方法"ですか? はい。使わない方法です。 教えていただいたサイトの方法で、試してみたところ、結果的にうまくいきました。 サイトでのアンサーは"LaunchScreen.storyboardを使う方法"でした。 具体的には、以下のことをしました。 1.プロジェクトに画像ファイルを追加 2.targets → generalの「Launch Screen File」を"LaunchScreen.storyboard"に変更(以前は空でした) 3.LaunchScreen.storyboardに"Image View"オブジェクトを追加 4."Image View"オブジェクトにスプラッシュ画像を設定 ここで画像は一つしか追加していないので、機種によってはぼやけてしまいます。 ぼやけるのを回避する方法はありますでしょうか。
akaakoz

2019/04/25 08:29

とりあえずこの質問はクローズお願いです〜 (meromero_systemさんが問題を解決した方法を記載してベストアンサーに選んでください) 画像のぼやけは新しい質問で出してください
msa_winnie

2019/04/25 08:41

教えていただきありがとうございます。 teratailを初心者なので、色々わからなくてすみません。 回答を記載し、ベストアンサーに選びます。
guest

回答1

0

自己解決

akaakoz様に教えていただき、解決に至りました。
ありがとうございました。


Images.xcasssetsのLaunchImageで設定する方法では解決方法が見つかりませんでした。
結果的に、"LaunchScreen.storyboardを使う方法"に変更したところ、iPad Pro(11-inch)とiPad Pro(12.0-inch)(3rd generation)で正しく表示されるようになりました。

具体的には、以下のことをしました。

①プロジェクトに画像ファイルを追加
②targets → generalの「Launch Screen File」を"LaunchScreen.storyboard"に変更(以前は空でした)
③LaunchScreen.storyboardに"Image View"オブジェクトを追加
④"Image View"オブジェクトにスプラッシュ画像を設定

ありがとうございました。

投稿2019/04/25 08:47

msa_winnie

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問