1

ファイルにLaunchImage設定されたイメージからイメージを読み込もうとしていますが、メモリを浪費し、最初の起動時にイメージを数秒間表示するだけでよいため、useを使用したくありません。.xcassetsimageNamed:

これに対して複数のアプローチを試しましたが、これまでのところ、imageNamed:.

これは機能します:

[UIImage imageNamed:@"LaunchImage-700-568h.png"]

これは機能しません ( を返しますnull):

[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"LaunchImage-700-568h" ofType:@"png"]]

リソースをターゲットに明示的に追加せずにこれを行う方法はありますか (アセットファイルは別として)? ありがとう!

4

1 に答える 1

2

あなたの質問に対する答えはノーのようです。

XCAssets のドキュメントによると。

アセット カタログの各セットには名前があります。その名前を使用して、セットに含まれる個々の画像をプログラムで読み込むことができます。画像をロードするには、プラットフォーム固有のクラス メソッドを呼び出して、画像を含むセットの名前を渡します。OS は、現在の倍率に最も適したセットからイメージを読み込みます。iOS のプラットフォーム メソッドは imageNamed: です。OS X の場合、プラットフォーム メソッドは imageNamed です。

したがって、[UIImage imageNamed:]メソッドを使用して、iOS の XCAssets カタログから画像をロードする必要があります。

ここで同様の質問と回答を参照してください。

于 2015-03-09T21:20:46.940 に答える