web-dev-qa-db-ja.com

スクリーンストーリーボードを起動すると画像が表示されない

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

これは、Launch Screen.storyboardファイルでの起動画面の外観です。 enter image description here

ただし、シミュレータ(および物理デバイス)でアプリを実行すると、次のように表示されます。

enter image description here

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

94
shadowarcher

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

私はそれが古い言葉であなたがそれをオフにして、再びオンにしたことを示すことになるだけで、最新のガジェットにもまだ当てはまると思います!

IPhone XSまたはiPhone XS Maxをハードリセットする方法

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

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

63
Tristan G

同じ問題を抱えていたため、「ビルドフェーズ->バンドルリソースのコピー」に画像を追加すると修正されました。

32
Jakab Robert

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

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

1-目的の画像をxCodeプロジェクトにインポートします(ドラッグアンドドロップするだけです)

2-制約とアライメントを変更する

3-自動レイアウトの問題を解決するフレームを更新する

4-[属性インスペクター]タブメニュー(通常は右隅のメニューxCode)の[画像]ビュー> [画像]で、画像拡張子(.pngまたは.jpg)を削除します-これがトリックです

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

私はそれが役立つことを願っています!

23
Jhonsore

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

  1. デバイスのハードリブートを行う

  2. アプリを削除

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

17
Crashalot

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

  1. デバイスからアプリケーションを削除する
  2. デバイスを再起動する
  3. 再構築

動作しない場合は、派生データを削除します。 Xcode Preference-> Locationtab->派生データ。その後、上記の手順に従ってください。

13
Vineesh TP

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

11
Reinier Melian

最後に、電話を再起動する私のために働く!!

私はこの問題に何時間も費やしました。画像名の変更、画像アセット全体の削除、info.plistの変更、Xcodeの再起動を試み、さらに画像のすべての属性を設定しようとしました(これは私がどれほど必死だったかわかります)。

11
shumin

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

6
Tarek

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

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

enter image description here

6
A.G

デバイスを再起動し、Xコードから派生したデータを消去します

5
Maulik Patel

XCodeのリソースキャッシングに問題があるようです。同じ問題が発生した場合、xCodeを再起動すると、すべてが正常に機能します。

4
Entro

プロジェクトに画像を追加して問題を解決したデバイスをシャットダウンした後、私はその問題を抱えていました

3
maral

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

2
Prime624

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

2
user5708587

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

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

2
Gee.E

さて、今のところ利用可能な網膜デバイスがあり、@1xAssets.xcassetsイメージを無視しました。

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

多くの時間を無駄にした後、そのロゴ画像に@2x@3xの画像しか提供していないことがわかりました。

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

2
Kampai

私の特定のケースでは、スプラッシュ画面はシミュレーターやその他のデバイスでは機能しましたが、特定のデバイスでは機能しなくなりました。これは、xcode(v10およびiPhone 7 v12.1)によって保持されるキャッシュデータであると信じるようになりました。

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

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

1
zkon

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

1
Preeti Rani

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

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

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

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

いくつかのStackOverflowスレッドですべてを試してみたところ、次のようになりました。

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

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

1
Kqtr

私の場合、デバイスを再起動するだけではありませんでした。起動画像は他のアセット(その他のポッド)に保存されました。

画像をAppプロジェクトのAssetsに移動する必要がありました。そして、デバイスを再起動しました。 (最初にシミュレーターを確認してください。動作するはずです)。それはうまくいきました。

画像は、png/pdf形式、単一のスケール、または重要ではありません。

0
Evan

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

0
Gujamin

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

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

たぶんこれは誰にも役立つでしょう。

0
Tim Christmann

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

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

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

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

0
John Holtkamp

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

0
thatmarcel

私の問題。

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

それがあなたを助けることを願っています!

0
Wajahat Hussain

プロジェクトをクリーンアップして、PNGを削除し、制約を削除してもうまくいきませんでした。

画像のコピーをもう1つ作成し、コピーの名前を変更してから、古い画像を削除して新しい画像を追加しました(名前は変更されましたが同じです)。

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

0
R. Mohan

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

enter image description here

0
Brian

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

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

画像の1倍のサイズが200X200の場合、画像ビューは200X200である必要があるため、この問題を解決できます。

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

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

0
hardik vyas