Я знаю, что могу использовать тег @2x для автоматической загрузки изображений для экранов Retina. Какие еще теги поддерживаются?

0
zoul 16 Окт 2012 в 18:13

1 ответ

Лучший ответ

В настоящее время поддерживаются три тега:

  • @2x для экранов Retina.
  • ~iPad для iPad должен быть последним тегом перед расширением.
  • ~iPhone для iPhone и iPod Touch, опять же, должен быть последним.

Для заставки есть также версия Default-568h@2x для iPhone 5. Это предполагает, что вы можете использовать -568h для автоматической загрузки изображений для iPhone 5, но, к сожалению, это не так (rdar: // 12516489). Вы можете пропатчить класс UIImage, чтобы добавить поддержку самостоятельно.

В итоге есть пять возможных вариантов изображения:

  • Image.png для старых устройств, 480✕320
  • Image@2x.png для Retina, 960–640
  • Image-568h@2x.png для Retina, 1136–640, только после установки патча UIImage
  • Image~iPad.png для старых iPad, 1024–768
  • Image@2x~iPad.png для Retina iPad, 2048–1536 гг.

Все это продемонстрировано в образце проекта загрузчика изображений iOS на GitHub.

3
zoul 17 Окт 2012 в 12:37
Не забывайте ~ iPhone для iPhone / iPod touch. Конечно, есть также -Landscape и -Portrait для изображений Default.png.
 – 
rmaddy
16 Окт 2012 в 20:38
('@' проблематично в комментариях SO ..) Я не пробовал ваш пропатченный UIImage, но я бегло просмотрел код. Я не понимаю, почему он ищет имя изображения для @ 2x. Обычно используется имя изображения без "@ 2x" и загрузка любых доступных изображений @ 2x, когда масштаб экрана равен 2.0. Разве код не должен просто определять, что он находится на устройстве с экраном высотой 568 точек @ 2x, а затем искать изображения с прозвищем -568h @ 2x, для png (если расширение не предоставлено) или любого предоставленного типа файла? Кроме того, я думаю, что ваша версия вообще не обрабатывает изображения, отличные от png -568 @ 2x - правильно?
 – 
TomSwift
16 Окт 2012 в 22:07
Код был взят из этого сообщения в блоге (как указано в заголовке ). Другие форматы файлов, кроме PNG, не поддерживаются, это правильно. На секунду у меня была поддержка JPEG, но потом я понял, что мне это все равно не нужно. И я думаю, что и в остальном ты прав - наверное, завтра я обновлю код. Сейчас это работает, но кажется слишком сложным. Спасибо!
 – 
zoul
16 Окт 2012 в 22:25
Я упростил код загрузки изображения, его легко адаптировать, если кому-то нужна поддержка JPEG или возникнут другие проблемы.
 – 
zoul
17 Окт 2012 в 11:39