2015-03-09 8 views
1

Я пытаюсь загрузить изображения из моих LaunchImage изображений, заданных в файле .xcassets, но я не хочу ли использовать imageNamed:, как это тратит память и изображению нужно только отображаться в течение нескольких секунд во время первоначального запуска.Получения запуск изображения с помощью XCAssets imageWithContentsOfFile:

Я пробовал несколько подходов к этому, но до сих пор я смог загрузить их только с помощью imageNamed:.

Это работает:

[UIImage imageNamed:@"LaunchImage-700-568h.png"] 

Это не работает (возвращает null):

[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"LaunchImage-700-568h" ofType:@"png"]] 

Есть ли способ сделать это без добавления ресурсов явно к цели (в сторону от файл активов)? Благодаря!

ответ

2

Похоже, что ответ на ваш вопрос - нет.

Согласно XCAssets documentation.

Каждый набор в каталоге активов имеет имя. Вы можете использовать это имя для программной загрузки любого отдельного изображения, содержащегося в наборе. Чтобы загрузить изображение, вызовите метод класса платформы, передавая имя набора, содержащего изображение. ОС загрузит изображение из набора, наиболее подходящего для текущего масштабного коэффициента. Метод платформы для iOS - это imageNamed :. Для OS X метод платформы imageNamed:

Таким образом, мы должны использовать [UIImage imageNamed:] метода загрузку изображений из каталога XCAssets на прошивке.

Аналогичные вопросы и ответы here.

+0

Спасибо за ответ. Есть ли способ сделать это, не добавляя файл в качестве ресурса вне файла активов Xcode? Я хотел бы сохранить размер файла приложения, если это возможно, и это добавляет различные файлы запуска для разных экранов. – rebello95

+0

Извините, я неправильно понял ваш вопрос. См. Обновленный ответ. – salabaha

+0

Жаль, что у них нет лучшего способа сделать это ... Спасибо за ответ. – rebello95