2011-09-08 19 views
8

我製作了一個具有特定功能和特定圖形外觀的應用程序。XCode 4:多個目標,多個資源與共享Xib使用同名圖像的文件夾?

例如,自定義tableview單元格是從Xib文件加載的,並具有UIImageView作爲背景圖像,加載了來自資源組的粉紅色圖像(「customcell.png」)。

現在,我複製了原始目標以創建應用程序的藍色版本。 另外,新的Target使用自己的Info.plist文件和自己的包標識符。

我希望Xib文件中的UIImageView使用相同的文件名(「customcell.png」),但如果藍色的目標是建立藍色版本的customcell.png。

我知道你不能在一個項目中使用同名文件,即使你把它放在一個組(黃色文件夾)中,因爲這只是一個邏輯文件夾。

因此,我創建了2個藍色文件夾(稱爲「藍色」和「粉紅色」),每個文件夾都與正確的目標相關聯。 我在「藍色」文件夾中放置了藍色版本的「customcell.png」,在「粉紅色」文件夾中放置了粉紅色版本的「customcell.png」。

我從項目中刪除了原來的「customcell.png」,只剩下新文件夾中的2個副本。

在Interface Builder中,UIImageView已經空白(因爲我刪除了原始圖像文件),所以我從下拉列表中再次選擇了「customcell.png」。 它只顯示了那個名字的一個文件(不是2),它是藍色的(不知道爲什麼)。

然而,當我建立任何目標的,我得到一個空的UIImageView和警告:

無法與標識符加載從筆尖引用的「customcell.png」形象捆綁「 com.myapp.blueversion」

(或pinkversion)

所以,基本上我的問題是, 我怎麼能使用具有相同名稱不同的圖像,關聯到不同的目標, 但有一個Xib文件適當地加載它們?

非常感謝!

+0

您是否記得將它們分配給不同的目標? –

+0

是的(我在創建時分配了藍色文件夾,我似乎無法分配單個文件)......看起來,IB無法真正到達那些藍色文件夾。我設法使用CustomeCell類中的#IFDEF來實現它,指向適當的藍色文件夾,但這意味着需要很多這些#IFDEF,我希望能通過IB來做到這一點,而不是增加大量的IFs ...如果有人知道某種方式,將不勝感激。謝謝。 –

回答

2

您遇到的問題是您嘗試使用藍色文件夾,就好像它們是普通文件系統文件夾一樣。藍色文件夾實際上只是在IDE中組織的文件組,並不代表文件夾層次結構。

通過右鍵單擊某些圖像以在Finder中查看它們,可以看到它的工作原理,並且您會注意到2個不同的藍色組文件夾中的文件實際上默認處於同一目錄中。

如何使用一個XIB引用多個目標名稱相同的圖像:

  1. 在Finder中,在 AppDelegate中被發現同一目錄中創建一個新的文件夾,可能是你的目標後,將其命名爲。
  2. 將該目標的所有圖像存儲在該文件夾中。
  3. 用鼠標右鍵單擊項目的主要組/文件夾在左上窗格中並使用「添加文件到'XcodeProjectName'...」。
  4. 在出現的上方窗格中,找到並選擇剛剛在文件系統上創建的文件夾。
  5. 由於文件已經存在於您指定的位置,因此您可以選中或取消選中「目的地」框。
  6. 保留爲所有添加的文件夾創建組創建藍色組文件夾。
  7. 確保您的目標已被選中。

只需爲每個目標重複此過程即可。

當您在Xcode中查看xib時,它將始終顯示圖像的一個版本,但運行該應用程序時它將會正確。

0

我遇到了藍色文件夾的問題,我不知道他們應該如何工作!

我使用單獨的目標我的應用程序的免費和付費版本,這是我分開不同的圖標文件(麻煩,因爲他們必須有一定名)

我的文件系統是這樣的:

資源

IconsPaid

的icon.png

Icon @ 2x。PNG

等等

IconsFree

的icon.png

等等

我然後拖動IconsPaid和IconsFree文件夾,Xcode和分配內容的相關目標

2

您可以嘗試兩個.xib副本,每個副本都是不同目標的成員。 .m和.h可以是兩個目標的成員,如果你願意(所以只有.xib被重複)。

我剛剛發佈了一個similiar question,它可能會幫助你。

相關問題