2013-03-12 99 views
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]; 

等等...任何一個幫助。 問候

+2

您不能在XCode項目中使用相同的命名圖像。因爲在構建創建時,XCode創建一個文件夾(又名主包)來存儲其所有資源。它不會引用手動創建的文件夾(例如,在您的示例中爲1,2)。所以在那裏同樣的命名圖像被替換。 對所有圖像文件使用不同的名稱。 – Mrunal 2013-03-12 11:11:44

+0

@mrunal我有400張圖片,所以我無法將它們全部重命名?你能建議我一個解決方案來獲取圖像使用絕對路徑或類似的東西? – 2013-03-12 11:21:14

+0

對不起,但它的規則由蘋果本身設置。爲了更好的方式,下載一些文件重命名管理器並重命名所有這些文件 在您的代碼中,您可能需要自行更改。 – Mrunal 2013-03-12 11:32:01

回答

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個圖像。構建你的應用程序時,你會得到一個重複的符號警告。

對於內存高效利用pathforresource類型,而不是圖像命名爲UIImage的,因爲它會對ViewControllers一些高速緩衝存儲器。

希望它可以幫助!

+0

我沒有收到任何警告,我有不同的文件夾沒有不同的組? – 2013-03-12 11:19:41

+0

Yello顏色,正如我告訴過你的,我使用的文件夾不是組。 – 2013-03-12 11:28:47

+0

@ X-Factor查看我的編輯方式和c – Dany 2013-03-12 11:33:47