ビューにUIView
をドラッグしたUIImageView
があります。突然、私のすべてのxibで画像が表示されなくなりました。青いXがあります。ただし、ビルドすると、イメージはそこにあります。
ある時点で、すべての画像を削除して再生成し、一部をXcodeのサブフォルダーに移動しました。通常、UIImageView
の画像を選択する場合、IBではプロジェクト内の任意の画像から選択できます。しかし、ドロップダウンのフォルダーに配置した画像がもう表示されません。
インスペクタのドロップダウンに表示されるのは、必要な1つの画像だけですが、表示されないものもあります。そして、私が言ったように、デバイスまたはシミュレーターでそれを構築する場合、それはすべて機能します。
キャッシュまたは何かがどこかにめちゃくちゃです。すべてがエラーなしで構築されます。キャッシュをクリアして再構築しました。それはすべて動作します。エラーや警告はありません。しかし...他の画像が表示されず、ドロップダウンで明確に選択された画像がないとIBはまだ考えています。
では、XcodeとIBを軌道に戻し、XIBで適切に表示されるはずのアセットを確認するにはどうすればよいですか?
プロジェクトをクリーンアップして再構築してみてください。
それでも機能しない場合は、Xcodeからすべての画像を削除し(参照の削除のみを選択)、それらの画像をXcodeにドラッグして再度追加します。次に、それを再構築すれば動作するはずです。
私のレシピ:クリーン+ビルド+ XCODEを終了してから再開する!
ボイラ!それはそこにあります!
プロジェクトにイメージをドラッグするときに、ターゲットにイメージを追加したことを確認してください。 Xcodeのフォルダー/グループ/プロジェクトシステムにはバグがあるため、画像をクリックして、図のようにインスペクターのターゲットビルドに実際に追加されていることを確認します(グラフィックの問題はグラフィックの回答に値します!):
プロジェクトに画像を追加...
ターゲットに追加します...(またはそう考えます)
背景画像はInterface Builderでうまく表示されます...
しかし、実行すると、設定した背景色しかありません...画像がありません...
インターフェイスビルダーでUIImageViewをクリックし、インスペクターを使用して、下にスクロールすると、実際には、ステップ2で明らかに示されたXcodeのように、ターゲットに追加されていないことがわかります。
それをターゲットに追加します...
そして、私たちはビルドして実行し、出来上がります!私たちの画像は、UIImageViewに表示されると想定される場所を正確に示しています。
これは、フレークな画像であるかどうかを確認するためのコードを追加しようとするまで、1日のほとんどの部分で気が動転しました。以下のviewDidLoad実装を作成して、問題なく追加しました。
Xcode/Interface Builderが意図したとおりに動作している場合、これは必要ないことに注意してください。ユーザーIBまたはこのコードを使用します。両方ではありません。
- (void)viewDidLoad {
UIColor * theColor;
UIImage * theImage;
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
theImage = [UIImage imageNamed:@"/<redacted>/background sea green gradent.png"];
theColor = [UIColor colorWithPatternImage: theImage ];
[self.view setBackgroundColor: theColor ]; }
注:ボタンがカスタム画像を表示していない場合、これは同じ問題になる可能性があります...
この問題が発生しました。 Adobe Illustratorで同じ画像をエクスポートしました。 1つは透明、もう1つは白。透明なものは大きな青い疑問符で現れました。それを実行すると、しかしうまくいきました。 IBと透過PNGに関係するもの
記録のために(私にとって何もうまくいかなかったため):
私たちのプロジェクトでは、網膜グラフィックのみがありました。 XCode 5
に更新した後、すべての画像に白い疑問符が含まれていました(Simulator
ではなくInterface Builder
のみ)。画像ソースをnon-retina
に切り替えて、問題を解決しました!
btn-category-6.jpg
を使用して問題を解決しました!
私にとっては、画像の属性インスペクターに「.png」が含まれていたためです。それを削除すると問題が修正されました
私の場合、Xcode 6
で新しいプロジェクトを作成したとき、シミュレータだけでなくデバイスにも画像を表示できません。画像アセット内のすべての画像をインポートし、その中にフォルダーを作成しました。すべての画像をインポートしましたが、すべて正常に動作しています。すべての画像が表示されています。
次の手順を実行します:
ステップ1:
ステップ2:
ステップ3:
次に、必要な画像をインポートします。参照リンク: StackOverflowリンク
参考までに、私は同様の問題を抱えていました。ある時点で、画像は破損し、すべて透過PNGでした!
ファイルを置き換えたところ、再び表示されました。 Windows XPを実行しているOracleのVirtual BoxのWindows Explorerを介してファイルをコピーしたときに、イメージが破損した可能性があります。
XcodeのInterface Builderファイルで表示している画面サイズと一致する画像スケールに一致するアセットがあることを確認してください。 Xcodeでアセットカタログを使用している場合、またはそれを使用していない場合、ファイル名で区別される別のアセットが必要です(例:「 image.png、image @ 2x.png、image @ 3x.png)。
複数のアセットサイズがなく、1xまたは3xの1つのアセットを提供しただけで、異なるアセットサイズを使用するデバイスタイプのインターフェイスビルダーで画面を表示している場合、UIImageView
の画像は表示されません。 Xcodeでレンダリングします。たとえば、2xを使用するiPhone 7のインターフェイスを表示していましたが、アセットには3xバージョンしかありませんでした。 2xバージョンを追加すると、XcodeのInterface Builderにすぐに表示されました。
Xcodeでレンダリングされなくても、実行時に正しくレンダリングされる可能性があることに注意してください。それでも、各デバイスモデルに適した解像度でアセットを提供することをお勧めします。
私はこの問題を数回経験しました。また、プロジェクトディレクトリをデスクトップにコピーし、元のフォルダーの名前を変更し、プロジェクトを新しい場所から開いて元のディレクトリに移動すると、毎回役に立ちました。これらの「すべてのヘッダーファイルをロードする」ソリューションはすべて機能する場合と機能しない場合があります
画像アセット実際に存在するを参照していることを確認してください。通常どおりXcodeアセットカタログ(.xcassets)にファイルを追加しましたが、名前をデフォルトの「Image」からストーリーボードで使用していた名前に変更するのを忘れていました。
これらの回答のいずれも機能しない場合、考えられる理由の1つは次のとおりです。UIButtonを使用して画像を表示している場合は、ボタンにタイトルがないことを確認してください。ボタンのキャプションが切り捨てられているため、省略記号(...)が表示されます。
私にとっては、資産をクリックして画像を簡単に表示するだけです。次に、ストーリーボードに戻り、画像が表示されます。
。pngが属性インスペクターの画像名の末尾にありません
属性パネルで画像名の最後に.pngと入力すると、画像(png)が表示されるのに、正しくマッピングされたアセットをクリーニング、再インポート、およびチェックした後、何も機能しませんでした。
1x、2x、3xのすべての画像を設定し、クリーンアップしてプロジェクトをビルドしてもプロジェクトが正しく表示されない場合は、Xcodeを終了して強制終了してから、Xcodeをもう一度開いてください。 Xcodeを再起動するだけでうまくいきました。
同じ症状がありましたが、プロジェクトフォルダをデスクトップに移動し、そこからIBでプロジェクトを再実行したところ、うまくいきました。次に、別の名前で奇妙な同じ親フォルダーに再度移動します。
これは、画像をxcassetsに移動したときに発生しました。インスペクターのpngとjpg拡張子を削除することで解決しました。