iOS: как использовать изображения в пользовательском пакете в Интерфейсном Разработчике? - PullRequest
24 голосов
/ 12 октября 2011

У меня есть пакет, в который я помещаю изображения.

Содержимое:

MyBundle.bundle/images/picture1.png
MyBundle.bundle/images/picture2.png

Я перетащил MyBundle.bundle в свой проект.

Теперь яможно увидеть эти изображения в Интерфейсном Разработчике и даже использовать их.Тем не менее, когда я запускаю приложение, я не вижу изображения.

Что не так?

Спасибо,

Ответы [ 3 ]

39 голосов
/ 12 октября 2011

Убедитесь, что пакет копируется в «Фазы сборки» настроек проекта для цели.

Кроме того, попробуйте установить их программно и посмотреть, показывают ли они:

myImageView.image = [UIImage imageNamed:@"MyBundle.bundle/images/picture1.png"];

Я только что попробовал это в своем проекте и обнаружил, что вам нужно сделать указать изображение с именем пакета перед , например так:

Image in IB

В IB изображение будет выглядеть сломано:

Broken

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

Итак, в вашем случае, используйте MyBundle.bundle/images/picture1.png в поле изображения Interface Builder.

Кроме того, когда вы не ставите имя пакета впереди, вы получаете это предупреждение, когда загружаете представление с изображением пакета:

2011-10-12 08:22:16.360 UTDebug[721:11c03] Could not load the "map.png" image referenced from a nib in the bundle with identifier "com.companyname.myproject"
8 голосов
/ 27 августа 2012

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

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

Возможно, вы установили случайную сборку, создав пакет в качестве цели для Mac OS X.

См. Мой другой ответ для решения.

...