XCode 4: Mehrere Ziele, mehrere Ressourcen Ordner mit gleichnamigen Bildern zur Verwendung mit einem freigegebenen Xib?

8

Ich habe eine App mit einer bestimmten Funktionalität und einem bestimmten grafischen Aussehen erstellt.

Zum Beispiel wird eine benutzerdefinierte Tabellenansichtszelle aus einer Xib-Datei geladen und hat eine UIImageView als Hintergrundbild, geladen mit einem rosa Bild ("customcell.png") aus der Ressourcengruppe.

Nun habe ich das ursprüngliche Ziel dupliziert, um eine blaue Version der App zu erstellen. Außerdem verwendet das neue Target seine eigene Info.plist-Datei mit einer eigenen Paketkennung.

Ich wollte, dass das UIImageView in der Xib-Datei den gleichen Dateinamen ("customcell.png") verwendet, aber nehme die blaue Version von customcell.png, wenn das blaue Target erstellt wurde.

Ich weiß, dass Sie in einem Projekt keine Dateien mit demselben Namen haben können, auch wenn Sie sie in einer Gruppe (gelber Ordner) ablegen, da dies nur ein logischer Ordner ist.

Also habe ich zwei blaue Ordner ("blau" und "pink") erstellt, die jeweils dem richtigen Ziel zugeordnet sind. Ich habe eine blaue Version von "customcell.png" in den "blauen" Ordner und eine rosa Version von "customcell.png" in den "rosa" Ordner gelegt.

Ich habe das ursprüngliche "customcell.png" aus dem Projekt gelöscht und nur die zwei Kopien in den neuen Ordnern zurückgelassen.

Im Interface Builder ist die UIImageView leer (seit ich die ursprüngliche Bilddatei gelöscht habe), also habe ich "customcell.png" erneut aus der Dropdown-Liste ausgewählt. Es zeigte nur 1 Datei dieses Namens (nicht 2), und es ist die blaue Datei (weiß nicht warum).

Wenn ich jedoch eines der Ziele erstelle, bekomme ich eine leere UIImageView und eine Warnung:

  

Das Bild "customcell.png" konnte nicht geladen werden, das von einer Schreibfeder im Paket mit der Kennung "com.myapp.blueversion"

referenziert wurde

(oder pinkversion)

Also, im Grunde ist meine Frage, Wie kann ich verschiedene Bilder mit demselben Namen verwenden, die mit verschiedenen Zielen verknüpft sind? aber mit 1 Xib-Datei, die sie entsprechend lädt?

Vielen Dank!

    
itai alter 08.09.2011, 06:16
quelle

3 Antworten

2

Das Problem, das Sie haben, besteht darin, dass Sie versuchen, die blauen Ordner so zu verwenden, als wären sie normale Dateisystemordner. Die blauen Ordner sind eigentlich nur Gruppen von Dateien für die Organisation in der IDE und stellen keine Ordnerhierarchie 'unter der Haube' dar.

Sehen Sie sich an, wie es funktioniert, indem Sie mit der rechten Maustaste auf einige der Bilder klicken, um sie im Finder anzuzeigen. Sie werden feststellen, dass Dateien in zwei verschiedenen blauen Gruppenordnern sich tatsächlich im selben Verzeichnis befinden.

So verwenden Sie eine xib, die auf die gleichen benannten Bilder für mehrere Ziele verweist:

  1. Erstellen Sie im Finder einen neuen Ordner in demselben Verzeichnis, in dem der AppDelegate wird gefunden und wahrscheinlich nach Ihrem Ziel benannt.
  2. Speichern Sie alle Ihre Bilder für dieses Ziel in diesem Ordner.
  3. Klicken Sie mit der rechten Maustaste auf die Hauptgruppe / den Ordner des Projekts im oberen linken Bereich und verwenden Sie "Dateien zu 'XcodeProjectName' hinzufügen ...".
  4. Suchen Sie im angezeigten oberen Fenster den Ordner, den Sie gerade im Dateisystem erstellt haben, und wählen Sie ihn aus.
  5. Sie können das Kontrollkästchen "Ziel" aktiviert oder deaktiviert lassen, da die Dateien bereits an dem von Ihnen angegebenen Speicherort vorhanden sind.
  6. Behalte "Gruppen für alle hinzugefügten Ordner erstellen", die ausgewählt wurden, um einen blauen Gruppenordner zu erstellen.
  7. Stellen Sie sicher, dass Ihr Ziel aktiviert ist.

Wiederholen Sie diesen Vorgang für jedes Ziel.

Wenn Sie die Xib in Xcode anzeigen, wird immer eine Version des Bildes angezeigt, aber sie ist korrekt, wenn Sie die App ausführen.

    
kraftydevil 01.07.2013, 07:40
quelle
2

Sie könnten zwei Kopien von .xib versuchen, von denen jedes Mitglied eines anderen Ziels ist. .m und .h können Mitglieder beider Ziele sein, wenn Sie möchten (also wird nur .xib dupliziert).

Ich habe gerade einen ähnlichen Artikel gepostet Frage , die Ihnen dabei helfen könnte.

    
Rok Jarc 16.01.2012 10:22
quelle
0

Ich hatte Probleme mit den blauen Ordnern, ich bin mir nicht sicher, wie sie funktionieren sollen!

Ich verwende separate Ziele für eine kostenlose und kostenpflichtige Version meiner App, und so separiere ich die verschiedenen Icon-Dateien (lästig, weil sie bestimmte Namen haben müssen)

Mein Dateisystem sieht so aus:

  

Ressourcen

     

IconsPaid

     

Icon.png

     

[email protected]

     

usw.

     

IconsFree

     

Icon.png

     

usw.

Ich ziehe die IconsPaid- und IconsFree-Ordner dann zu XCode und weise den Inhalt den relevanten Zielen zu

    
James Webster 08.09.2011 08:14
quelle