web-dev-qa-db-ja.com

iOS:Interface Builderのカスタムバンドルで画像を使用するにはどうすればよいですか?

画像を入れるバンドルがあります。

内容は次のとおりです。

MyBundle.bundle/images/picture1.png
MyBundle.bundle/images/picture2.png

ドラッグしましたMyBundle.bundle私のプロジェクトに。

これで、これらの画像をInterface Builderで確認でき、使用することもできます。ただし、アプリを実行すると画像が表示されません。

どうしましたか?

ありがとう、

24
Van Du Tran

ターゲットのプロジェクト設定の「ビルドフェーズ」でバンドルがコピーされていることを確認します。

また、プログラムで設定してみて、次のように表示されるかどうかを確認してください。

myImageView.image = [UIImage imageNamed:@"MyBundle.bundle/images/picture1.png"];

私は自分のプロジェクトでこれを試したところ、あなたがする必要があるのは前にバンドル名を付けて画像を指定する次のようになっていることがわかりました:

Image in IB

IBでは、画像はlook壊れます:

Broken

しかし、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"
39
chown

XIBもバンドルに入れる必要があります。これを行うと、インターフェースのリソースはバンドルに関連するため、IBとアプリにインターフェースをロードするときの両方で機能します。

9
Glenn Maynard

Mac OSXターゲットとしてバンドルを作成したことによるビルド設定が間違っている可能性があります。

解決策については、私の その他の回答 を参照してください。

0
Frank Schmitt