2

プロジェクトに含めたフォルダ間で階層的に分割された名前が繰り返される400枚の画像があります。絶対パスで画像を読み込みたいので、使用してみましimagenamedたが、画像を読み込む代わりに空のボックスが表示されます。今、絶対パスを使用して画像を表示する方法について少し助けが必要です。

私のプロジェクトの階層

Project
     -> Project Files (i-e App Deligate and view controllers)
     -> Resources
            ->Images
                  ->1
                      ->1.jpg
                      ->2.jpg
                      ->3.jpg
                  ->2
                      ->1.jpg
                      ->2.jpg
                      ->3.jpg

画像の読み込みに使用している方法

[self.leftImage setImage:[UIImage imageNamed:@"Images/1/1.jpg"] forState:UIControlStateNormal];

など...誰でも、助けて。よろしく

4

1 に答える 1

2

あなたのコメントによると

次の方法が役立つ場合があります

- (NSString *)pathForResource:(NSString *)name ofType:(NSString *)ext inDirectory:(NSString *)subpath;
- (NSString *)pathForResource:(NSString *)name ofType:(NSString *)ext inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName;

- (NSArray *)pathsForResourcesOfType:(NSString *)ext inDirectory:(NSString *)subpath;
- (NSArray *)pathsForResourcesOfType:(NSString *)ext inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName;

このコードを試すことができます

NSString * sample=[[[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"1"] ofType:@".jpg" inDirectory:@"foldername"];
[self.leftImage setImage:[UIImage imageWithContentsOfFile:sample] forState:UIControlStateNormal];

また、同じ名前の画像を2つ持つことはできません。アプリのビルド中に重複シンボルの警告が表示されます。

メモリ効率を高めるには、UIImageに名前が付けられた画像ではなくpathforresourceタイプを使用します。これは、ViewControllerにキャッシュメモリがあるためです。

それが役に立てば幸い !!!

于 2013-03-12T11:18:27.317 に答える