Ресурсы, расположенные в отдельном комплекте, видимые в IB, но не во время выполнения - PullRequest
5 голосов
/ 10 августа 2011

У меня есть приложение, в котором большая часть ресурсов изображения хранится в отдельном пакете ресурсов (есть веская причина для этого).Этот пакет ресурсов добавляется в проект вместе с основным комплектом приложений, и в то время как я проектирую свой NIB в Интерфейсном Разработчике, все эти изображения видимы внутри IB (то есть, они появляются в выпадающем списке для моего UIImageView, и они правильно отображаются в моем UI).).Однако, когда я запускаю свое приложение в симуляторе, все эти изображения отсутствуют.Есть ли способ сказать UIKit, что нужно искать эти изображения внутри этого дополнительного пакета ресурсов в дополнение к основному пакету приложений?

Я могу загрузить эти изображения вручную в viewDidLoad без проблем, но я ищу способ использовать Interface Builder, чтобы упростить изменение дизайна / оформления этих NIB.

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

Sceenshot

Тогда они будут загружаться правильно во время выполнения, но IB отобразит их в виде больших синих вопросительных знаков.

Теперь вопрос - как получить лучшее из обоих миров и правильно отобразить изображения как в IB (время разработки), так и во время выполнения.

1 Ответ

3 голосов
/ 20 декабря 2012

Я столкнулся с той же проблемой, и это, вероятно, связано с тем, как Xcode компилирует ваши изображения при сборке вашей цели комплекта.Так как цели комплекта не полностью поддерживаются на iOS, вы должны создать их как цели Mac OS X.Это оставляет проблемный параметр сборки на месте, а именно COMBINE_HIDPI_ARTWORK, который будет установлен на YES.Это приводит к тому, что ваши обычные и @2x варианты объединяются в один tiff файл в вашем комплекте.Полученный файл поддерживается в Mac OS, но не в iOS.

(Спасибо за этот ответ за подсказку).

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

В этот момент вы сможете использовать свои изображения как в IB, так и в коде, не делая ничего особенного (кроме проверки того, что .xib и изображение находятся в одном пакете).

...