Xcode 7に組み込まれているiOS8以降をサポートするアプリがあり、起動画面にXIBを使用しています(起動画像はありません)。ビューには、アプリのバージョンを含む1つのUILabelと、Images.xcassetsに両方とも存在する画像を含む2つのUIImageViews(ロゴとスプラッシュ画像)が含まれています。
アプリケーションを起動するとUILabelとロゴ画像が正しく表示されますが、iOS9を搭載したiPad Air 2でアプリを実行するとスプラッシュ画像が表示されません。iPad 8、iPad Air、iPad Air 2用のAirとMiniを実行しているiOS8、iOS9、およびiOS9シミュレータでテストしましたが、画像はすべて正しく表示されます。
私は何が起こっているかを見つけ出すことができるかどうかを確認するためにいくつかの基本的なトラブルシューティングを実行しましたが、私はそれを解決することができていないと働いている画像と失敗しています1の間、私が見ることができる唯一の違いはあるとき、私はこれを追加しました資産...
これが私が知っていることの要約です:
スプラッシュ画像のUIImageViewは、正しい場所、正しいサイズにあります。念のため、背景色を緑色に設定しているので、これはわかります。ビューはありますが、イメージは表示されません。だから私はビューが非難されるべきではないと仮定しています。
ロゴ画像も使用するようにスプラッシュ画像のUIImageViewを設定すると、ロゴ画像がビューの正しい場所に表示されます。これはまた、その見解が非難されるべきではないと思い込む原因にもなります。
スプラッシュイメージビューで使用しているUIImageは、アプリの他の場所で使用され、他のビューでは正常に表示されます(ロゴイメージはアプリの他の場所でも使用され、美しく表示されます)。そのため、画像は有効であり、他のビューに表示されることは問題ではないと想定しています。
xcassetsファイルのロゴとスプラッシュのUIImagesの設定が同じであることを確認しました。これらは、ユニバーサル、任意の幅と高さ、複数の倍率に設定され、デフォルトとしてレンダリングされます。違いが1つあります。ロゴには1x、2x、3xのスケールがありますが、スプラッシュ画像には1xと2xしかありませんが、UIViewsで1xと1xと2xのみの値を持つUIImagesを使用してみました少し前にプロジェクトに追加されました)。
xcassetsに別のサイズまたはフォーマット(PNGおよびJPG)の別の画像を追加し、スプラッシュ画像のUIImageViewでそのUIImageを使用しても、表示に失敗します。
別のUIImageViewをXIBファイルに追加して、すでにxcassetsにあったUIImageを割り当てると、画像がロード画面に表示されます。
ロゴに使用する画像ファイルをコピーして名前を変更し、それらをプロジェクトに追加してから、そのUIImageをスプラッシュビューで使用しても表示されません。
問題が発生した場合に備えて、プロジェクトをクリーンアップし、開発マシンを再起動し、Air 2からアプリを削除して再インストールしてみました。
これらの最後の3つのステップは、プロジェクトファイルのライフタイムの特定のポイントの後に追加されたイメージに問題があると私を信じさせてくれます。昨日Xcode 7に更新しましたが、スプラッシュ画像はもともとXcode 6で追加されていましたが、ロゴ画像(Xcode 6でも追加)は数か月前に追加されました。
ロゴ画像とスプラッシュ画像のjsonファイルを調べましたが、それらは同じ形式であるように見えます。また、pbxprojファイルを調べて違いを探しましたが、何も表示されません。
だから私は、誰かが起動画面になぜ私が特にAir 2に追加しているこれらの新しい画像を表示しないかもしれないという考えを持っているのだろうかと思っていましたか?すべてが表示されない画像に関連して私がこれまで読んだ他の質問は、起動画像、または関連クラスを持つXIBファイル内の画像に関連しているようですが、どちらもここでは関係がないようです。