Укажите, из какого каталога .xcassets использовать изображение в XIB - PullRequest
0 голосов
/ 05 февраля 2020

Если бы у меня было:

  • две цели (A и B) в одном проекте Xcode
  • два разных каталога активов (a.xcassets и b.xcassets)
    • a.xcassets назначен цели A только
    • b.xcassets назначен цели B только
  • 1.png называется Image в a.xcassets и 2.png, также называемый Image в b.xcassets

При построении:

  • 1.png закончится в Assets.car в A.app
  • 2.png будет заканчиваться на Assets.car в B.app

Оба изображения могут именоваться Image в коде или файлах IB с правильным изображение отображается в соответствующей сборке приложения.

Пока все хорошо. Теперь моя проблема:

При добавлении UIImageView к b.xib, принадлежащему только цели B и ссылающейся на Image в этом UIImageView, на самом деле он не показывает 2.png в Дисплей XIB в Xcode, а точнее 1.png. Xcode должен знать, что b.xib принадлежит цели B и что он должен искать Image в b.xcassets, а не a.xcassets (так как a.xcassets не имеет членства с целью B).

Что я могу сделать, чтобы спроектировать свой макет с правильным Image (2.png)?

Есть ли способ сообщить Xcode пространство имен или указать каталог ресурсов, из которого нужно взять Image? Я пробовал b/Image и b.xcassets/Image.

PS: то же самое касается двух проектов (с одной целью каждый) в одной рабочей области

1 Ответ

1 голос
/ 05 февраля 2020

По сути, не делай этого. Не присваивайте одинаковое имя наборам изображений в разных каталогах ресурсов. Как вы показали, это сбивает с толку Interface Builder.

Возможно, вы сможете различить использование функции «папка» каталога активов для разделения имен, но я не нашел, чтобы это было также абсолютно надежно.

...