画像を入れるバンドルがあります。
内容は次のとおりです。
MyBundle.bundle/images/picture1.png
MyBundle.bundle/images/picture2.png
ドラッグしましたMyBundle.bundle
私のプロジェクトに。
これで、これらの画像をInterface Builderで確認でき、使用することもできます。ただし、アプリを実行すると画像が表示されません。
どうしましたか?
ありがとう、
ターゲットのプロジェクト設定の「ビルドフェーズ」でバンドルがコピーされていることを確認します。
また、プログラムで設定してみて、次のように表示されるかどうかを確認してください。
myImageView.image = [UIImage imageNamed:@"MyBundle.bundle/images/picture1.png"];
私は自分のプロジェクトでこれを試したところ、あなたがする必要があるのは前にバンドル名を付けて画像を指定する次のようになっていることがわかりました:
IBでは、画像はlook壊れます:
しかし、buildおよびrunプロジェクトを実行すると、イメージ正しく表示されます。
したがって、あなたの場合は、実際のInterface BuilderImageボックスでMyBundle.bundle/images/picture1.png
を使用してください。
また、バンドル名を前に付けないと、ビューにバンドルイメージをロードしたときに次の警告が表示されます。
2011-10-12 08:22:16.360 UTDebug[721:11c03] Could not load the "map.png" image referenced from a nib in the bundle with identifier "com.companyname.myproject"
XIBもバンドルに入れる必要があります。これを行うと、インターフェースのリソースはバンドルに関連するため、IBとアプリにインターフェースをロードするときの両方で機能します。
Mac OSXターゲットとしてバンドルを作成したことによるビルド設定が間違っている可能性があります。
解決策については、私の その他の回答 を参照してください。