Подтвердить что ты не робот

IOS: Как использовать изображения в пользовательском комплекте в Interface Builder?

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

Содержимое:

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

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

Теперь я могу видеть эти изображения в Interface Builder и даже использовать их. Однако, когда я запускаю приложение, я не вижу изображения.

Что не так?

Спасибо,

4b9b3361

Ответ 1

Убедитесь, что пакет скопирован в "Сборка фаз" параметров проекта для цели.

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

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

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

Image in IB

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

Broken

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

Итак, в вашем случае используйте MyBundle.bundle/images/picture1.png в фактическом окне интерфейса 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"

Ответ 2

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

Ответ 3

У вас может быть паразитная настройка сборки из созданного пакета в качестве цели Mac OS X.

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