起動画面のストーリーボードに画像が表示されない


162

Launch Screen.storyboardファイルから起動画面として表示する画像を取得しようとしていますが、画像が表示されません。うまく表示されるラベルがありますが、画像が表示されません。

これは、Launch Screen.storyboardファイルでの起動画面の外観です。 ここに画像の説明を入力してください

しかし、シミュレータ(および物理デバイス)でアプリを実行すると、次のようになります。

ここに画像の説明を入力してください

ご覧のとおり、「テスト」というラベルは問題なく表示されますが、画像は表示されません。なぜこれが起こっているのか本当にわからないし、何を試してもうまくいかないようです。誰かがこれを修正する方法のアイデアを持っているなら、それは大歓迎です。


1
画像が適切なpng形式であることを確認してください。ないJPG、それがある場合。
Utkarsh Singh


3
完全に異なる複数の回答に賛成票がたくさんあるという事実は、非常に悲しいことです。
Daniel Springer

1
画像が大きすぎて読み込み時間がかかりすぎる場合、起動画面から破棄される可能性はありますか?
Lubbo 2018

@ルボその理論には何かがあると思います。大きな画像と小さな画像がある起動ビューがあります。小さな画像はうまくロードされ、大きな画像はそうではありません。小さい画像はxcassetsにあり、大きい画像はアセットファイルの内外で試しました。
トム・ベイツ

回答:


327

Xcodeを再起動した後、ビルドをクリーンアップし、この問題に関するSOに関する他の多くの提案を行います。実際にそれを修正したのは、デバイスのハードリブートでした。(私はこれで1時間以上も無駄にした)

私はそれが単にあなたがそれをオフにして再びオンにしたという古いことわざが最新のガジェットにまだ当てはまることを示すために行くだけだと思います!

iPhone XSまたはiPhone XS Maxを再起動する方法

  1. 音量大ボタンをすばやく押して離します
  2. 音量小ボタンをすばやく押して離します
  3. Appleロゴが表示されるまでサイドボタンを押し続けます

30
この男は正しいです。デバイスをハードリブートするだけで修正されました!
ランスサマリア2017年

4
アセットで上書きした後、画像が更新されないという問題がありました。ヒントをありがとう、シミュレータを完全に終了して再起動するとプレビューが更新されました。他には何もうまくいっていないように見えることは非常に奇妙です。
キリアン2017年

3
ありがとう。シミュレーターでも動作します。シミュレーターを再起動すると、Launch Scree.storyboardの画像がようやく表示されます。これは間違いなくiOSのバグです。
Vince Yuan

4
ここでも同じ問題。シミュレーターの起動画面で画像を変更しても、古い画像がどういうわけか私の電話にキャッシュされていました。クリーンビルドを試み、ファイル名を変更し、イメージを変更しましたが、機能しませんでした。スマートフォンの電源を入れ直した。それで直った。
ポール、

3
これは2020年であり、これはまだ私の日を救いました!ありがとう!
Bezaleel

91

私もこれを何時間もいじっていました。しかし、私は今解決策を見つけました。ドラッグアンドドロップでプロジェクトに画像を追加し、assets.xcassetsにも追加する必要があります。


8
これでおしまい。画像はプロジェクトとアセットの両方に含まれている必要がありました。これは、もぐらたたきのゲームのようなものです。どのチップがそれを修正しますか?誰も知らない。
FranticRock

プロジェクトにも画像を追加する必要があることを知っていた人
Abdul Waheed

2
プロジェクトに画像を追加するだけで問題が解決しました:)
Sneha

3
ありがとう、これは私のために並べ替えました。これに追加するために、以前に画像にサイズ(launch280.png、launch560.png、launch840.png)の名前を付け、アセット名をとしてAssets.xcassetsにアセットを追加しましたlaunch。しかし、それでも機能しませんでした。画像ファイルの名前をlaunch.png、launch @ 2x.png、launch @ 3x.pngに変更し、それらをプロジェクトに追加して、という名前のアセットとして追加する必要がlaunchあり、それが機能しました。最も単純なものを不必要に複雑にしてくれたAppleに感謝
¬_¬–マッシャー

2
3年後、私は2度目にここに来ました... 2020年4月ですが、XCodeにはまだこのバグがあります...いい...
FranticRock

42

同じ問題があり、「ビルドフェーズ->バンドルリソースのコピー」にイメージを追加すると修正されました。


6
これは私が必要としたものです。画像はアセットファイルではなくメインバンドルにある必要があります。
Meonardo

これは私のためにそれをしたものです。
Chris

私のために修正しました、ありがとう!
adam eliezerov 2018

28

以下の手順に従ってください、

  1. デバイスからアプリケーションを削除する
  2. デバイスを再起動
  3. もう一度ビルド

機能しない場合は、派生データを削除します。Xcode Preference-> Locationtab-> Derived data。次に、上記の手順に従います。


25

それは私に起こって、私を夢中にさせます。

だから、前に言ったように:

  1. 目的の画像をXcodeプロジェクトにインポートします(ドラッグアンドドロップするだけです)。
  2. 制約と配置を変更する
  3. 自動レイアウトの問題を解決するフレームを更新する
  4. [属性インスペクタ]タブメニュー(通常は右隅のメニューxCode)の[画像ビュー]> [画像]で、画像拡張子(.pngまたは.jpg)を削除します-これがトリックです

デザイン画面では表示されませんが、アプリを実行すると表示されます。

お役に立てれば幸いです。


1
私のために働いた!あなたの解決策を試す前に、私がそれを示す唯一の方法は私の電話を再起動することでした!ありがとう
FilipeSá

1
ありがとうございました!どうやってそれを見つけたのか分かりませんが、うまくいきました!
Stas Volskiy 2017年

確かに!コツは、.png画像ファイルから画像拡張子を削除することです!.jpgファイルが機能しなかったため、最初に.pngに変換する必要がありました。Jhnosoreに感謝します。
ActiveA

24

とてもイライラします。最終的に機能したソリューション:

  1. デバイスをハードリブートする

  2. アプリを削除

  3. Xcodeからアプリをインストールする


17

最後に、電話を再起動しますしてください。

私はこの問題に何時間も費やしてきました。画像の名前を変更し、画像アセット全体を削除し、info.plistを変更し、Xcodeを再起動して、画像のすべての属性を設定しようとしました(これは私がどれほど絶望的であるかを知ることができます)。



申し訳ありませんが@AdamRichardsonそれは答えと正しい答えも提供し、これは私のケースでした。私はただ電話/シミュレータを再起動する必要がありました。
ケガムK.18年

私はこれを解決するために16時間を費やし、最後に電話を再起動するのがうまくいきました。
クリシュナン

2
私はこれを修正できるAppleの誰かが考えているに違いない:「ああ、彼らはただ自分の電話を再起動する必要があるだけです-これはリリースビルドなどに影響するようなものではありません。このタスクは後で行うことができます。」
dinesharjani

最終的には、問題を修正した電話を再起動することになりました
Taylor Maxwell

12

この問題はAssets.xcassetsに関連しており、それを修正するには、画像をリソースとして追加する必要がありますが、xcassetsフォルダーには追加せず、問題なく機能するはずです。


2
これがこれまでに機能した唯一のソリューションです。xcodeの再起動、派生データのクリア、イメージ名の変更は機能しませんでした。誰にでも解決策としてデバイスを再起動することはお勧めしません
NightFury

このバグは、xcassetsの作成と同じくらい古いものです。私は「リンゴは決して解決しないもの」という私のフォルダーに精神的にそれを満たしました。
ダック

8

私の場合、シミュレータのコンテンツと設定をリセットすると問題が解決しました。


7

私も同じ問題に直面しました。

  1. XcodeAssetsに新しい画像セットを追加します。
  2. 画像を画像セットに追加します。
  3. 起動画面に画像ビューを追加し、画像セットを画像として設定します
  4. Imageviewの属性インスペクターで、「グラフィックスコンテキストをクリアする」のチェックを外します
  5. ビルドフォルダーをクリーンアップして、再度実行します。

ここに画像の説明を入力してください


5

xCodeのリソースキャッシングに問題があるようです。同じ問題が発生し、xCodeを再起動すると、その後はすべて正常に動作します。



3

いくつかのStackOverflowスレッドですべてを試した後、ここでうまくいきました:

  • .pngを使用する
  • アセットカタログに含めないでください。ソースファイルを追加するのと同じように、プロジェクトの階層に直接追加します。
  • 画像ビューで、拡張子を含む画像を読み込みます。例:launch_app_image.png

(更新するために製品または派生データをクリーンアップする必要があるかもしれませんが、私はする必要はありませんでした)


2020とこれはまだ関連性があり、動作するときにカタログ内の画像を新しいPNGに変更すると、停止することがあります。圧縮レベルの問題かどうかはわかりませんが、プレーンイメージファイルは機能します。
ミッチェルカリー

3

画像をプロジェクトに追加し、デバイスが問題を解決した後に問題を解決しました


3

スプラッシュスクリーンの背景画像を変更していましたが、新しい画像が表示されませんでした(Reactネイティブプロジェクト)。

他の人からの回答に従う。

私は以下のすべてを行い、それは修正されました:

  • クリーンビルド。
  • シミュレーターからアプリを削除
  • シミュレータを終了
  • XCodeを再起動します
  • もう一度アプリを実行

3

さて、現時点では利用可能な網膜デバイスがあり、私はの@1x画像を無視しましたAssets.xcassets

私の場合、スプラッシュ画面にアプリのロゴがあり、アプリケーションを実行しても表示されません。

あまりにも多くの時間を費やした後、私はそのロゴ画像の@2x@3x画像のみを提供していることがわかりました。

この問題は@1x、そのイメージのバージョンを追加することで解決されます。


1
あなたは私の日を救った!
カンバラ

2

画像のファイル名の最後に.pngや.jpgのような形式があることを確認する必要があります。そうしないと機能しません。また、画像を追加する前に、画像ファイルがプロジェクト内の「Assets.xcassets」フォルダーにあることを確認する必要があります。これは、単純なドラッグアンドドロップで実行できます。また、画像をストーリーボードに追加したら、左上の画像名が実際の画像ファイル名と一致していることを確認してください。私も制約を調べてみます。お役に立てれば。あなたのアプリで頑張ってください。


2

私はこの問題に何時間も費やし、ついに私の間違いに気付きました。UIImageViewに画像を追加すると、画像の名前だけが使用されます。画像がストーリーボードとは異なるフォルダーにある場合、xcodeには表示されますが、アプリを実行すると表示されません。適切なファイルパスプレフィックス(たとえば、images / image.png)を追加する必要があります。これで、xcodeで青い疑問符として表示されますが、アプリでは機能します。


2

この質問に私の$ 0.02を追加するだけです。JPG / JPEG画像の代わりにPNG画像を使用してこれを解決しました。

画像をPNGに変換し、処理してサイズを少し小さくした後、すべてが正常に機能しました。


2

多くの時間を費やした後、私は解決策を得ました:-

Step 1:- Quit Xcode
Step 2:- Delete the app from device/simulator
Step 3:- Restart your device (if you are using simulator then you have to quit simulator)
Step 4:- Clear all derived data 
Step 5:- Clear Bin
Step 6:- Open Xcode and relaunch the app, it will work 

おかげでうまく
いき

@DilipTiwariようこそ:)
Vipul Kumar

1

私は同じ問題に直面しました。そのためにさまざまな解決策を試してみましたが、役立つものは何もありませんでした。次に、アプリをデバイスに直接インストールし、アプリがまだxcodeに接続されている場合にのみ、画像が表示されないことに気付きました。切断してアプリを開くと、画像は期待どおりに表示されていました。xcodeのバグの可能性があります。


1

私はプロジェクトをクリーンアップしようとしましたが、pngを削除しました。

イメージのコピーをもう1つ作成して名前を変更し、古いイメージを削除して新しいイメージを追加しました(同じ、名前を変更しました)。

また、私はAssets.xcassetsを使用せず、フォルダー内の画像を使用しています。


1

私はこれで非常に多くのことを試しました(このスレッドだけで100万のアイデアがあり、それらの半分は矛盾しています)。私にとっての問題は、デバイスとXcodeを再起動するようなことをすると、画像がアプリのいくつかのセッションで表示され、その後停止することでした(理由はわかりませんが、うわーいです)。 。

数え切れないほどの時間の後、このスレッドでのAGの答えは正しいものであることがわかりました。私が間違っていたのは、xcassets内に新しい画像セットを作成していたことですが、画像セットの名前ではなく、ストーリーボード内のUIImageView内の画像の名前を使用していました。

明確にするために、新しい画像セットを作成し、「Launch-Defaults」のような名前を付けてから、画像を追加します。次に、ストーリーボード内のUIImageView内で、「Launch-Default」という画像を使用します(これは画像セットであるため、何もないため、拡張機能は含みません)。

これらすべてを実行すると、画像は実際にはストーリーボード内に正しく表示されます。拡張子(.jpgまたは.png)を使用しないと画像が空白で表示されるという人もいますが、これは画像セットの名前を使用していないためだと思います。.pngや.jpgなどの拡張子を使用する必要があるという人もいますが、重要なのは、xcassets内に画像セットを作成し、ストーリーボード内でその画像セットを使用することです。正しく行われると、画像が表示されなかったり、起動画面がときどきしか機能しない(再起動が必要)などの機能が損なわれることはありません。


1

私の特定のケースでは、スプラッシュスクリーンはシミュレーターやその他のデバイスでは機能しましたが、特定の1つのデバイスでは機能しなくなりました。これは、xcode(v10およびiPhone 7 v12.1)によって保持されている一部のキャッシュデータであると私に思わせました。

私は次の場所で派生データを削除しました: ~/Library/Developer/Xcode/DerivedData/フォルダーを削除するのではなく、フォルダーの内容を空にするだけです。その後、MacとiPhoneを再起動し、プロジェクトをクリーンアップして再構築しましたが、現在は表示されています。

これらすべてが必要かどうかはわかりませんが、これを絞り込むためにこれ以上時間を無駄にしたくなかったので、上記のハンマーアプローチがうまくいきました。しかしもちろん、それは常にあなたの特定の状況に依存します-私のものはデバイス固有でした。他の人にとっては、実際の画像や起動画面のレイアウトなどである可能性があります。


1

私の問題。

理由:Xcodeにドラッグした後、画像の名前を変更しました。解決策:Xcodeにドラッグした後、画像の名前を変更しないでください。Xcodeを理解する上で問題が発生します。Xcodeにドラッグ/追加する前に画像の名前を変更します。

お役に立てば幸いです。


0

私はこれを理解しました。起動画像が表示されず、デバイス(iPhone 6、7以降)またはtestFlightで起動すると白い画面が表示されます。修正:「Landing_screen.png」の名前を「Landing_screen」に変更し、.pngパーツを削除。Xcodeの画像アイコンが白いアイコンに変わり、起動画面のストーリーボードで画像が疑問符として表示されるようになりました。起動画像が表示され、白い画面は表示されません。私のセットアップ:Xcode 8.3.1でSwift 3.1を使用しています。LaunchScreen.storyboardに、単純な画像ビューを追加し、ビューコントローラーに合わせて画像を拡大しました。スーパーレイアウトの自動レイアウト制約の上部/下部/先頭/末尾のスペースを0に設定します-以下の画像を参照してください:

ここに画像の説明を入力してください


0

私の場合、いくつかのビューがまだ基本的なビューコントローラーになっているビューコントローラーにリンクされていることがわかりました。ビューをコントロールクリックすると、警告付きのアウトレットが表示されますが、警告がXcodeに表示されなかったため、それらを見つけることができませんでした。


0

これはたまたまXCode / iOSのキャッシュの問題ですが、これに対する簡単な修正があります。Assets.xcassets内のファイルの名前を変更するだけで、キャッシュが再生成されます。


0

私の最初の間違いは、通常の.storyboardを作成し、名前を変更して、プロジェクト設定で起動画面として定義したことです。この場合、画像に問題がありました。この場合、いくつかの設定が不足しているようですので、file-> newを使用して新しいファイルを作成し、「起動画面」を直接選択しただけで動作しました。

また、レイアウトの制約が何らかの理由で起動画面でサポートされていないことも覚えていました。最初はそうだったのかもしれませんが、確かではありませんが、今は制約が機能するはずです。

多分これは誰にも役立ちます。


0

起動ストーリーボードを使用してスプラッシュ画面を表示するときにも同じ問題に直面し、調査の結果、起動ストーリーボードに設定した画像のサイズが異なり、実際の画像サイズよりも大きい画像ビューを設定しました。

だから私が見つけた解決策は、画像ビューのコンテンツサイズをアスペクトフィットとして設定するか、画像ビューサイズを画像サイズとして設定することです。

画像@ 1xサイズが200X200である場合と同様に、画像ビューはこの問題を解決するよりも200X200である必要があります。

画像ビューのサイズを画像よりも大きく設定すると、画像がでこぼこになり、これが許可されないためです。

それでも疑問がある場合は、ここにコメントして質問してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.