Изображения не отображаются при запуске приложения на устройстве iOS - PullRequest
2 голосов
/ 08 июля 2011

У меня есть изображения с таким названием в моем приложении:

изображение ~ iPhone.png image@2x~iPhone.png

В конструкторе интерфейсов я загружаю image.png в мой UIImageView. Я также программно загружаю некоторые изображения в другое представление, используя imageWithContentsOfFile. Все изображения загружаются нормально, когда я запускаю в симуляторе, но я не получаю изображения, когда я бегу на устройстве. Если я использую полное имя изображения в конструкторе интерфейсов, оно работает, но я хочу, чтобы iOS различала высокое и низкое разрешение. Я пробовал много разных вещей, но не могу понять это. Я также вижу эту ошибку в отладчике:

Не удалось загрузить изображение «image.png», на которое ссылается перо в комплекте с идентификатором «com.mycompany.myproject»

Xcode 4 Цель развертывания 4.1 Базовый SDK 4.3

Спасибо за любую помощь.

Ответы [ 3 ]

1 голос
/ 09 июля 2011

Хорошо ... так что после долгих экспериментов у меня все заработало.

У меня было два изображения с именем:

  1. image@2x~iPhone.png
  2. изображение ~ iPhone.png

и я пытался загрузить их, используя IB или imageWithContentsOfFile, используя

  • image.png

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

Я наконец переименовал изображение с высоким разрешением в:

  1. image~iPhone@2x.png

Перемещение модификатора '@ 2x' после модификатора устройства (~ iPhone) при обращении к моим изображениям позволило ему работать так, как я понял из чтения документов Apple. У меня сложилось впечатление, что вам не нужно включать модификатор устройства при ссылках на изображения, но мне пришлось это сделать.

Подводя итог, я сейчас использую - изображение ~ iPhone.png ссылаться на мои изображения в IB и программно для некоторых изображений. Теперь я получаю iOS, распознающую, что я нахожусь на экране сетчатки глаза, и загружаю изображения @ 2x соответственно. Таким образом, модификатор @ 2x должен был идти в конце, а модификатор ~ iPhone должен был быть включен в название «.png».

Вот что сработало для меня. Надеюсь, это поможет кому-то еще. Обратите внимание, что я создаю свое приложение только для iOS4.1 и выше, поэтому могут возникнуть некоторые проблемы с этим, если вы поддерживаете предыдущую версию.

0 голосов
/ 19 декабря 2012

Файловая система iOS чувствительна к регистру, и модификаторы устройства должны быть в нижнем регистре, это должно быть

image~iphone.png
image@2x~iphone.png

@ 2x предшествует модификатору устройства.

См. Программирование ресурса руководство

0 голосов
/ 08 июля 2011

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

например, if ([[UIScreen mainScreen] scale] == 2) // set hi res image

Или вы можете просто использовать одно и то же изображение в обоихи установите режим содержимого для масштабирования, чтобы заполнить.Это будет выглядеть одинаково.

РЕДАКТИРОВАТЬ: Попробуйте написать либо ~iphone (строчные буквы), либо просто не пишите ~iPhone вообще в имени файла.Если ваше приложение не универсально, то писать суффикс ~iphone совершенно бессмысленно.

...