2013-06-20 2 views
2

У меня возникли проблемы с отображением некоторых изображений в приложении iOS. Я изменил некоторые графики из PNG в формат JPG, и когда я удалил изображения PNG уже в проекте и добавил новые JPG, симулятор все еще показывал старую графику PNG. Я побежал «очистить» проект и сбросил содержимое симулятора, и теперь он просто не хочет загружать изображения вообще - [UIImage imageNamed:@"filename"] возвращает null.iOS UIImage не отображает изображения в формате JPEG

С другой стороны, если я сохраню эти графики как PNG и добавлю их в проект вместо из JPEG, он загружает их в порядке. Но изображения фотографируются, а версии PNG в 7-8 раз больше JPEG, поэтому я действительно хочу понять, почему они не будут их загружать.

Редактировать: просмотрев документацию (что похоже на 100-й раз), я понял, что ошибка заключалась в том, что я не указал расширение. Поддерживаемые форматы изображений (http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html) перечисляет довольно много форматов, которые поддерживаются, и UIImage ссылка говорит, что:

КСН 4, а затем, если файл в формате PNG, не нужно указать. Расширение имени файла PNG.

Я неправильно понял, что подразумевается, что расширение является необязательным, но если файл не является PNG, вы должны его включить. Поэтому, если файл называется my_image.png, вы можете передать его как «my_image» или «my_image.png», но если у вас есть my_image.jpg, он будет работать только как «my_image.jpg».

+1

Попробуйте удалить папку 'build' и снова запустить приложение. –

ответ

6

способ изображениеNamed: только груз * .png resorce в проекте. Попробуйте

NSString *filePath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"imageName"] ofType:@"jpg"]; 
    UIImage *theImage = [UIImage imageWithContentsOfFile:filePath]; 
+0

Спасибо за подсказку, получается, что это не то, что 'imageNamed:' не может загружать изображения JPG, это значит, что вы должны явно указать @ "filename.jpg", чего я не сделал. – SaltyNuts

+0

нет, его то же самое, все равно не может загрузить это. У меня был тот же самый вопрос, когда я пытался загружать jpg из ресурса. –

+1

Возможно, ваша проблема была связана с чем-то другим. Для меня '[UIImage imageNamed: @" flower.jpg "]' работает отлично. – SaltyNuts