Я работаю над приложением iphone и настраиваю iOS 4.0 или позже. Я пытаюсь добавить изображение в UIImageView, а изображение находится в формате jpeg. Это то, что я сделал до сих пор.
UIImageView *bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 246.0)];
bgImageView.image = [UIImage imageNamed:@"background"];
[self.view addSubview:bgImageView];
[bgImageView release];
Я добавил два изображения,
- background.jpg(как нормальное изображение 1x)
- [email protected](для 2x/сетчатки дисплей).
Но когда я строю и запускаю, все работает нормально, за исключением фона. Все мои другие виджеты есть, но есть белый фон, и изображение не отображается.
Затем я создал два png-изображения для своего фона, добавил его в проект и побежал. На этот раз мой фон был показан. Я был озадачен, потому что согласно documentation jpg-изображение можно использовать в iphone с UIImage.
Я снова попытался с помощью jpg-изображений и изменил код выше на
UIImageView *bgImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 246.0)];
bgImageView.image = [UIImage imageNamed:@"background.jpg"]; //added extension
[self.view addSubview:bgImageView];
[bgImageView release];
Когда я запускаю приведенный выше код, отображается фоновое изображение, но 2 изображения не загружаются. Это показывает, что мой jpg-образ в порядке, и это не преступник. Поэтому, когда я просто указываю имя изображения без расширения, файлы png (как 1x, так и 2x) загружаются на соответствующие устройства, файлы jpg вообще не загружаются. Похож на ошибку (либо в sdk, либо в документации). iOS 4 находится здесь в течение хорошего года. почему никто этого не заметил? Также есть ли какой-либо вариант для меня, кроме как преобразовать все мои изображения в png?
EDIT:
Хорошо, два дня на вопрос, нулевые ответы. Я уже преобразовал все мои изображения в png, и эта часть моего проекта выполнена (так как мой проект не мог дождаться..). Тем не менее, ради меня самого и ради всех, кто сталкивается с этим в будущем, я хотел бы узнать больше об этой проблеме. По крайней мере, кто-то может подтвердить, что это действительно яблочная ошибка. Я начинаю щедрость, чтобы больше людей могли видеть эту тему.
ИЗМЕНИТЬ СНОВА
2 дня, оставшиеся для завершения этой награды. Спасибо всем, кто ответил. Но позвольте мне прояснить одно. Я уже сказал, что все мои образы преобразовал в png, и я двинулся вперед. Я просто хотел получить подтверждение, что imageNamed
обрабатывает файлы jpg и png одинаково. Документация, безусловно, говорит, что это будет (если Apple не написала ее где-то кроме документации UIImage
). Если документация правильная, мой код мне не удалось из-за двух возможных причин.
- Это ошибка в
imageNamed
. Если это причина, то у меня нет слишком много опций, кроме файла, отчета об ошибке, изменения моих изображений в png или записи обертки (как сказал Чандан в его ответе) и двигаться дальше. - Есть некоторая проблема с изображением jpeg, которое я использовал. Ну, я не парень из фотошопа. Но я использовал Изображение RGBA jpg. Если изображение имеет значение, я готов спросить моего дизайнера друг и предоставить дополнительную информацию.
Еще одна вещь. Это сообщение также просто рассказывает об этой проблеме. Но он не знает причины. Поэтому я не одинок.
EDIT: END
Ну, это связано с самим изображением. Я googled и скачал некоторые образцы jpeg изображений и играл с ним. Некоторые из них показываются правильно, а некоторые нет. Поскольку время ограничено, я даю ограниченность PengOne, который пытался воспроизвести ошибку и успешно загрузил jpg-изображение без расширения, заставив меня работать с большим количеством изображений. Спасибо всем, кто пытался помочь.