IOS 8以降をサポートし、Xcode 7で構築されたアプリがあり、起動画面にXIBを使用しています(起動画像はありません)。このビューには、アプリのバージョンを持つ単一のUILabel、およびImages.xcassetsに存在する画像を含む2つのUIImageView:ロゴとスプラッシュ画像が含まれています。
アプリケーションを起動するとUILabelとロゴの画像は正しく表示されますが、iOS 9のiPad Air 2でアプリを実行するとスプラッシュ画像は表示されません。私はiPad 2、iPad Air、iPad Air 2用のiOS 8とiOS 9を実行しているAirとMiniでテストしましたが、それらの画像はすべて正しく表示されます。
何が起こっているのか理解できるかどうかを確かめるためにいくつかの基本的なトラブルシューティングを実行しましたが、それを解決することができず、うまくいっているイメージと失敗しているイメージの違いはwhenです。資産に追加しました...
これが私が知っていることの要約です:
スプラッシュイメージのUIImageViewが正しい場所、正しいサイズにあります。念のために、背景色を緑に設定しているので、これがわかります。ビューはありますが、画像は表示されません。だから私はその見解が非難ではないと思っています。
スプラッシュイメージのUIImageViewをロゴイメージも使用するように設定すると、ロゴイメージがビューの正しい場所に表示されます。これは私がその見解が非難ではないと仮定することにもつながります。
私がスプラッシュイメージビューで使用しているUIImageは、アプリケーションの他の場所で使用されていて、それらの他のビューでは問題なく表示されています(ロゴ画像もアプリケーションの他の場所で使用され、問題なく表示されます)。だから私はその画像が有効であり、それが他のビューに現れることは問題ではないと仮定している。
XcassetsファイルのロゴとスプラッシュのUIImagesの設定が同じであることを確認しました。それらは、[ユニバーサル]、[任意の幅と高さ]、複数の縮尺係数に設定され、デフォルトとしてレンダリングされます。 1つ違いがあります - ロゴは1倍、2倍、3倍スケールですが、スプラッシュ画像は1倍と2倍しかありませんが、UIViewで1倍、1倍と2倍の値でUIImagesを使用してみました。しばらく前にプロジェクトに追加しました。
別のサイズまたはフォーマット(PNGとJPG)の別の画像を私のxcassetに追加して、スプラッシュ画像のためにUIImageViewでそのUIImageを使用することはまた表示に失敗します。
別のUIImageViewをXIBファイルに追加し、それをすでにxcassetsに含まれていたUIImageに割り当てると、画像がロード画面に表示されます。
ロゴに使用されている画像ファイルをコピーして名前を変更してプロジェクトに追加してから、そのUIImageをスプラッシュビューで使用しても表示に失敗します。
問題が発生した場合に備えて、プロジェクトのクリーニング、開発マシンの再起動、Air 2からのアプリの削除、再インストールを試みました。
この最後の3つのステップで、プロジェクトファイルの有効期間内の特定の時点の後に追加された画像に問題があると私は信じます。昨日私がXcode 7にアップデートしたとき、スプラッシュ画像はもともとXcode 6に追加されましたが、ロゴ画像(Xcode 6にも追加された)は数か月前に追加されました。
私はロゴ画像とスプラッシュ画像のjsonファイルを調べましたが、それらは同じフォーマットを持っているように見えます。私はpbxprojファイルを調べて違いを探しましたが、何も見えません。
だから私は特に起動画面に私がAir 2に追加しているこれらの新しい画像が表示されないかもしれないという誰かの考えを持っていたのだろうか?すべてが表示されない画像に関して私が今まで読んできたその他の質問は、Launch Images、または関連するクラスを持つXIBファイル内の画像のどちらかに関連しているように思われます。
一度オフにしてからもう一度オンにします。
真剣に、デバイスを再起動してください - それは私にとってそれを修正したものです。
これはうまくいかなかったものです:
過去の観測値:
他の人と同じように、
最初のビルドが機能しなくなったときに思い出したのは、実行中のiPhoneのプラグを抜いたことです。 (関連性があるかどうかわからない)
しかし、それを修正していないgit reset(すべてのきれいなステップがうまくいっていないことと合わせて)は、これがどこか他の場所にキャッシュされているに違いないということを教えてくれます。多分.gitignoredファイルの1つにありますか? (私は XcodeプロジェクトではGit ignore fileを使用しています )
1つのUIImageView(3つを持つUIView)ではうまくいきましたが、他のものではうまくいかなかった1つの回避策は、イメージを.xcassetsファイルに入れることでした。プレーンイメージファイルに戻しても修正は元に戻りませんでした。 (本当にキャッシングエラーのようです。)
更新:トップを参照してください - デバイスを再起動すると、それを修正しました。間違ったビットマップデータがデバイス自体にキャッシュされているように感じます。
「私にとっての解決策は、ストーリーボードのUIImageViewに対して「グラフィックスコンテキストのクリア」ボックスのチェックが外されていることを確認することでした。これを変更するだけで問題は解決しました。」他の解決策は私には役立たなかった。 Apple開発者フォーラム から入手してください
次の一連の操作で、Xcode 7.3.1およびiOS 9.3.4での問題が解決しました。
他の多くの回答では、デバイスの再起動や再構築、再インストールが解決策となっています。
これらの答えは私達の何人かのために働くが、これらの仕事の理由はアプリがキャッシュされたスナップショットを「再取得」または「再構築」することを強制されるためです。
キャッシュスナップショットは、ストーリーボードイメージを含むアセットカタログを含む、サポートデータがメモリにロードされる前にイメージを表示するためにアプリによって使用されます。
This SO answer by @jagaが解決策を提供しますが、UIImageViewsがデバイスの起動画面に表示されない理由(ただしシミュレータに表示されない)については理由はありません。
背景
最近、 "Launch Screen.storyboard"ファイルでカスタムフォントを使用しようとしました。
@TimCamberによる this SO answer を読んだ後、私がはっきりしなかった理由は、もう少し調査とテストをするように促しました。
カスタムフォントがLaunch Screen Storyboardファイルに含まれていないのは、アセットカタログ内の画像が含まれていないのと同じ理由です。
アプリはLaunch Screen StoryboardファイルからアプリのLaunch Screenの縦長と横長のスナップショットを作成し、(現在は)ここでアプリバンドルに保存します。
/Library/Caches/Snapshots/<<app_bundle>>/
と/Library/Caches/Snapshots/<<app_bundle>>/downscaled/
。このプロセスは、カスタムフォントやアセットカタログなど、サポートファイルが読み込まれる前に完了します。
解決策
@ jagaの解決策に従って前述したように、文字通り必要なのは次のことだけです。
私は同じ問題を見ていました。デバイスを再起動して(iPhone 6)、アプリケーションをデバイスに再構築することだけが問題を解決しました。他にもたくさんのヒントや提案を試してみましたが、それ以外はうまくいきませんでした。再起動+再構築のみが役に立ちました。
私はTestFlightからインストールされたアプリのために同じを持っていました。 アプリを削除 - >それからiPhoneを再起動 - >それからアプリを再インストール 私のために働く。アプリを再インストールするか、デバイスを再起動するだけではうまくいきませんでした。
私の解決策@iOS 11.x:
.jpg
の代わりに.png
imageを使用してください。画像ファイルのサイズは重要だと思います。.xcassets
ではなくプロジェクトディレクトリに置きます。装置の電源を入れ直してみましたか? やりなさい。
私は同じ問題を抱えていましたが、デバイスを再起動しても役に立ちませんでした。私にとってうまくいったのは、私のローンチストーリーボードからUIImageViewを削除して新しいものを追加することでした。
Image.xcassets から画像を取り出して、再度プロジェクトに追加します。それは私のために働きました。
私はiPhone 5sデバイスを使用していますが、この問題も解決しています。
私はそれを修正します。
ドライブデータを削除する
プロジェクトをきれいにする
Xcodeを再起動
自分のデバイスからプロジェクトを削除する
5秒を再起動します。
Xcodeがメモリを使うのは悪いことだと思います。システムがXcodeのために小さなメモリを割り当てることがあります。
それは私のために働いた。
最初のxcode clean de projectです。
シミュレータを使用している場合は、アプリを削除して再起動してください。
デバイスを使用している場合は、アプリを削除してデバイスを再起動してください。
私はまた、iPadとiPhoneデバイスを搭載したXcode 7でもこの問題を抱えていました。意味がありませんが、ImageビューのImageだけでなく強調表示されたイメージもimages.xcassetの同じイメージに設定することで、ほとんどの場合回避できました。
起動画面はAssets.xcassetsの画像のみをサポートすると思います。
ImageViewを選択してから、属性インスペクタのタブ> Image view> Image> Image Nameで画像の拡張子(.pngまたは.jpg)を削除します。
Launchscreen.storyboardでは、画像は表示されませんが、デバイス内にあります。これは私のために働きました。
IOSのバグのようです。時々システムアニメーションが消えたように。
今私はちょうどiPhoneを再起動し、それは私のために働いています。
私の場合、私は イメージ名 でした。
LaunchScreen.xibに[email protected]
という名前のイメージを追加しました。これは、テスト目的のためだけの私の古い起動画面の1つです。私はiPhone X Simulator上で構築していましたが、画像は表示されませんでした。
名前を中立的な名前(MyImage.png)に変更することで問題は解決しました。
@2x
も-568h
と同様に問題の一部だったようです。これは-812h@3x
デバイスでは意味があります。
簡単な解決策は、PNGの代わりにJPGを使うことです。
モバイルからアプリを削除してからモバイルを再起動し、アプリをもう一度インストールします。今問題は解決されます
Xcodeを再起動すると私のためにそれをやった。
何をした しない /それ:
私はこの問題をiPhone 6上のiOS 10とシミュレータでも抱えていました。私の画像はフォルダの中にあり、それが問題のようでした。 Xcodeのフォルダから画像を削除し、プロジェクトのベースディレクトリに配置して問題を解決しました。
私はimageView起動スクリーンのストーリーボードと同じ問題を抱えています。私はプロジェクトから写真の参照を削除し、私は自分の画像の名前を変更してプロジェクトに再度追加しました。すべてうまくいきました。
プロジェクト画像を削除する2.画像名を変更する3.プロジェクトにファイル画像を追加する
それは私のために働きました。
私は同じことを経験します。画像の解像度を300ピクセル/インチから72に変更しました。
解決しました!
私にとってうまくいったことは、LaunchScreen.storyboard
からViewController
を削除し、新しいViewController
を以下のように設定することでした。
初期View Controllerです
そのような単純な :)
次は私に役立ちました:
とても重要です :あなたのxibが他のタブで開かれていないことを確認してください。
画像名が問題です。起動画面のストーリーボード内で使用されている画像の名前を変更します。英数字以外の文字を使用しないようにしてください( "_-&@"は使用しないでください)。
私もこの問題に遭遇しました。 SIMULATORのすべての内容と設定を消去することは私のために働きました。
私の場合、私はちょうどアプリのターゲットに行きます - >一般 - >アプリアイコンと画像の起動 - >画像ソースの起動それから私は画像を置くソースを選択します
私の場合、問題は起動画面のサイズが1ピクセルずれていたことです(2208x1242ではなく2209x1242)。それを修正してから、デバイスを再起動してアプリを再構築することができました。
私は私のために働いたシンプルだが過激な解決策を見つけました:
1 - ファイルLaunchScreen.storyboardを削除してゴミ箱に移動します。
2 - 製品 - >クリーン
3 - LaunchScreen.storyboardという名前の新しい起動画面ファイルを作成し、そこに画像を配置します。
4 - 保存してビルド
LaunchScreen.storyboardが書き込みロックされていて保存できなかったか、奇妙なキャッシュプロセスによってブロックされていたようです。
"myProject"はImages.xcassetsから開始された多くの画像を含みます。しかし、私はプロジェクトから“ Assets.xcasset”を削除して復元した後、不足している画像に遭遇しました。
私はこの行方不明の画像の問題に出くわし、そして以下の方法を試みました:
私の問題を解決するための解決策:
左側のメニューから画像ファイルを選択し、右側のユーティリティメニューから「ファイルインスペクタを表示」を選択します。ターゲットメンバーシップの下で、ターゲットが選択されていることを確認してください。ターゲットを選択して画像を追加しましたが、選択されなかった理由がわかりません。私はすべての解決策を試した、再起動、削除など誰も動作しません。これだけでうまくいきました。他の人に役立つことを願っています。