2011-09-08 11 views
8

Zrobiłem aplikację o określonej funkcjonalności i pewnym graficznym wyglądzie.Kod X 4: Wiele celów, wiele zasobów Foldery z obrazami o tej samej nazwie, które można wykorzystywać ze współużytkowanym Xib?

Na przykład niestandardowa komórka widoku tabeli jest ładowana z pliku Xib i ma UIImageView jako obraz tła, załadowany różowym obrazem ("customcell.png") z grupy zasobów.

Teraz skopiowałem oryginalny obiekt docelowy, aby utworzyć niebieską wersję aplikacji. Nowy obiekt docelowy używa własnego pliku Info.plist z własnym identyfikatorem pakunku.

Chciałem UIImageView wewnątrz pliku Xib, aby użyć tej samej nazwy pliku ("customcell.png"), ale weź niebieską wersję customcell.png, jeśli niebieski cel został zbudowany.

Wiem, że nie możesz mieć plików o tej samej nazwie w projekcie, nawet jeśli umieścisz go w grupie (żółty folder), ponieważ jest to tylko folder logiczny.

Stworzyłem więc 2 niebieskie foldery (nazywane "niebieskim" i "różowym"), z których każdy jest powiązany z właściwym obiektem docelowym. Umieściłem niebieską wersję "customcell.png" w folderze "niebieskim" i różową wersję "customcell.png" w folderze "różowym".

Usunąłem oryginalny "customcell.png" z projektu, pozostawiając tylko 2 kopie, które znajdują się w nowych folderach.

W Konstruktorze interfejsów, UIImageView zniknął pusty (odkąd usunąłem oryginalny plik obrazu), więc ponownie wybrałem "customcell.png" z rozwijanej listy. Pokazał tylko 1 plik o tej nazwie (nie 2), i jest niebieski (nie wiem dlaczego).

Jednak, kiedy budować któregokolwiek z celów, dostaję pustą UIImageView i ostrzeżenie:

Nie można załadować „customcell.png” obraz odwołuje ze stalówką w wiązce z identyfikatorem " com.myapp.blueversion”

(lub pinkversion)

Więc w zasadzie moje pytanie brzmi, jak mogę używać różnych obrazów z tej samej nazwie, powiązane z różnymi obiektami docelowymi, , ale mające 1 plik Xib, który ładuje je odpowiednio?

Dziękuję bardzo!

+0

Czy pamiętasz, aby przypisać je do ich różnych celów? –

+0

Tak (przy tworzeniu przypisałem niebieskie foldery, nie mogę przypisać poszczególnych plików w środku) ... Jak się wydaje, IB nie może dostać się do tych niebieskich folderów. Udało mi się to zrobić za pomocą #IFDEF wewnątrz klasy CustomeCell, wskazując odpowiedni niebieski folder, ale to by oznaczało, że wiele z tych #IFDEFów jest potrzebnych, i miałem nadzieję, że zrobię to poprzez IB zamiast dodawać wiele IFs ... Jeśli ktoś zna sposób, byłoby to docenione. Dzięki. –

Odpowiedz

2

Problem polega na tym, że próbujesz użyć niebieskich folderów tak, jakby były normalnymi folderami systemu plików. Niebieskie foldery są po prostu grupami plików dla organizacji w IDE i nie reprezentują hierarchii folderów "pod maską".

Zobacz, jak to działa, klikając prawym przyciskiem myszy niektóre obrazy, aby wyświetlić je w Finderze, a zauważysz, że pliki w dwóch różnych niebieskich folderach grupowych są domyślnie w tym samym katalogu.

Jak używać jednego XIb odsyłania tych samych nazwach obrazów do wielu celów:

  1. w Finderze, utworzyć nowy folder w tym samym katalogu, w którym AppDelegate zostanie znaleziony, prawdopodobnie nazywając go po swojej tarczy .
  2. Zapisuj wszystkie obrazy dla tego celu w tym folderze.
  3. Kliknij prawym przyciskiem myszy główną grupę/folder projektu w lewym górnym panelu i użyj "Dodaj pliki do" XcodeProjectName "...".
  4. W pojawiającym górnym panelu znajdź i wybierz folder, który właśnie utworzyłeś w systemie plików.
  5. Możesz zostawić pole Miejsce docelowe zaznaczone lub niezaznaczone, ponieważ pliki już istnieją w określonej lokalizacji.
  6. Zachowaj opcję "Utwórz grupy dla dowolnych dodanych folderów", aby utworzyć niebieskie foldery grup.
  7. Upewnij się, że twój cel jest zaznaczony.

Po prostu powtórz ten proces dla każdego celu.

Podczas przeglądania pliku Xib w Xcode zawsze będzie wyświetlana jedna wersja obrazu, ale będzie to poprawne po uruchomieniu aplikacji.

0

Mam problemy z niebieskimi folderami, nie jestem pewien, jak mają działać!

Używam odrębne cele dla wolnego i płatnej wersji mojej aplikacji, a to w jaki sposób oddzielić różne pliki ikon (kłopotliwe, ponieważ trzeba mieć niektóre nazwy)

Mój system plików wygląda następująco:

Resources

IconsPaid

Icon.png

Ikona @ 2x.png

Itd

IconsFree

Icon.png

Itd

Następnie przeciągnij foldery IconsPaid i IconsFree do XCode i przypisać zawartość do odpowiednich celów

2

Możesz wypróbować dwie kopie. XIB, każde z członków innego celu. .m i .h może być członkami obu celów, jeśli chcesz (tak, że tylko .xib jest powielana).

Właśnie napisałem similiar question, które mogą ci w tym pomóc.

Powiązane problemy