Я работаю над приложением для 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 изображение)
- background@ 2x.jpg (для отображения 2x / сетчатки).
Но когда я строю и запускаю, все работает нормально, кроме фона.Все остальные мои виджеты есть, но есть белый фон и изображение не показывается.
Далее я создал два png-изображения для фона, добавил его в проект и запустил.На этот раз мой фон был показан.Я был озадачен, потому что согласно документации 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];
Когда я запускаю приведенный выше код, отображается фоновое изображение, но 2x изображения не загружаются.Это показывает, что мое изображение JPG в порядке, и это не преступник.Поэтому, когда я просто даю имя изображения без расширения, файлы png (как 1x, так и 2x) загружаются на соответствующие устройства, файлы jpg не загружаются вообще.Похоже, ошибка (в SDK или документации).iOS 4 здесь для хорошего года.почему никто не заметил это?Также есть какой-либо вариант для меня, кроме как конвертировать все мои изображения в PNG?
РЕДАКТИРОВАТЬ:
Ну, два дня на вопрос, ноль ответов.Я уже конвертировал все свои изображения в png, и эта часть моего проекта выполнена (так как мой проект не мог ждать ...).Тем не менее, ради себя и ради всех, кто столкнется с этим в будущем, я хотел бы узнать больше об этой проблеме.По крайней мере, кто-то может подтвердить, что это действительно яблочная ошибка.Я начинаю вознаграждение, чтобы больше людей могли видеть эту ветку.
ВНОВЬ РЕДАКТИРОВАТЬ
Осталось 2 дня до окончания этой награды.Спасибо всем, кто откликнулся.Но позвольте мне уточнить одну вещь.Я уже сказал, что я преобразовал все мои изображения в PNG, и я пошел дальше.Я просто хотел получить подтверждение, что imageNamed
одинаково обрабатывает файлы jpg и png.Документация определенно говорит, что это произойдет (если Apple не написала это где-нибудь, кроме UIImage
документации).Если документация верна, мой код не помог мне по двум возможным причинам:
- Это ошибка в
imageNamed
.Если это причина, то у меня не так уж много вариантов, кроме как подать отчет об ошибке, изменить мои изображения на png или написать обертку (как сказал Чандан в своем ответе) и двигаться дальше .. - Существует некоторая проблема с изображением jpeg, которое я использовал .Ну, я не фотошоп парень.Но я использовал изображение RGBA jpg.Если изображение имеет значение, я готов спросить моего друга-дизайнера и предоставить больше информации.
Еще одна вещь. Этот пост также просто рассказывает об этой проблеме.Но он не знает причину этого.Так что я не одинок.
РЕДАКТИРОВАТЬ: КОНЕЦ
Ну, это что-то, связанное с самим изображением.Я гуглил, скачал несколько образцов изображений в формате JPEG и поиграл с ним.Некоторые из них отображаются правильно, а некоторые нет.Поскольку время ограничения истекло, я передаю границы PengOne, который попытался воспроизвести ошибку и успешно загрузил изображение jpg без расширения, заставив меня работать с большим количеством изображений.Спасибо всем, кто пытался помочь.