Разрешение изображения для новых iPhone 6 и 6+, добавлена ​​поддержка @ 3x?

Я просмотрел несколько статей и обсуждений, например здесь и Здесь о разрешениях изображений, при которых новые iPhone будут использовать изображения @ 3x для отображения. Это правда?

Значит ли это, что нам нужно сохранить три изображения? Скажем, у меня есть изображение размером 50 X 50, нужно ли мне хранить 3 изображения для оптимизации внешнего вида новых iPhone?

  • Нормальный (50 X 50)
  • @ 2x - Retina (100 X 100)
  • @ 3x - Retina HD (150 X 150)

Или в новых телефонах будут использоваться только изображения @ 2x и ничего лучше @ 3x нет?

Я протестировал, создав образец проекта, и все симуляторы, похоже, используют изображения @ 3x, это сбивает с толку.

Изменить

Вот еще немного информации

  • 3GS (163 ppi, используйте нормальный)
  • 4, 4, 5 и 5 (326 пикселей на дюйм, поэтому мы используем @ 2x)
  • 6 (326 пикселей на дюйм, похоже, будет использоваться @ 2x)
  • 6 плюс (401 ppi здесь и кроется путаница)

Изменить

Основываясь на ответах Цоба и Нитина, я добавил в свой проект изображения @ 3x.

Информационное редактирование

Я вижу, что немногие пользователи не понимают, почему в iPhone 6 используются изображения @ 2x, даже несмотря на то, что у него более высокое разрешение, причина в том, что

iPhone 6 может иметь другое разрешение, но одинаковую плотность пикселей на дюйм (PPI).

  • Разрешение относится к абсолютному количеству пикселей.
  • Плотность (также известная как количество пикселей на дюйм - PPI) относится к относительному количеству пикселей на дюйм, которое одинаково в случае iPhone 6 и предыдущих iPhone, но отличается в iPhone 6 плюс.

Узнайте больше об этом здесь, в этой теме

Следовательно, iPhone 6 использует изображение @ 2x, такое же, как iPhone 4, 5 и 5S, поскольку он имеет тот же PPI, а iPhone 6 plus использует @ 3x.


person Bhumit Mehta    schedule 11.09.2014    source источник
comment
Тогда в чем польза от Retina 4 2x, если ни одно устройство не использует его?   -  person Mrunal    schedule 20.12.2014
comment
Я согласен с тем, что плотность одинакова для iPhone 4, 5 и 6, но как решить проблему с другим разрешением? Так что разница в 640х960 и 750х1334 пикселей большая. Если мне нужно использовать фоновое изображение, перекрывающее весь экран. Как я могу установить xcasset изображения в этом случае?   -  person Matrosov Alexander    schedule 03.02.2015
comment
@MatrosovAlexander, как вы это решили?   -  person Mário Carvalho    schedule 18.02.2015
comment
в качестве обходного пути я также использовал изображение iphone 6 для изображения @ 2x, но это похоже на то, что xcode не имеет для него подходящего изображения   -  person Matrosov Alexander    schedule 18.02.2015
comment
следуйте stackoverflow.com/questions/48483934/   -  person Rishil Patel    schedule 16.03.2018


Ответы (4)


В примере проекта я пробовал использовать стандартные изображения @ 2x и @ 3x, а симулятор iPhone 6+ использует изображение @ 3x. Таким образом, может показаться, что нужно сделать @ 3x изображения (если симулятор действительно воспроизводит поведение устройства). Но странно то, что все устройства (симуляторы), похоже, используют это изображение @ 3x, когда оно находится в структуре проекта, iPhone 4S / iPhone 5 тоже.
Отсутствие связи с Apple по потенциальной структуре @ 3x, в то время как они Просить разработчиков публиковать свои приложения для iOS8 довольно запутанно, особенно когда видишь эти результаты на симуляторе.

** Редактировать с веб-сайта Apple **: Также можно найти это в разделе «Что нового в iOS 8» на сайте Apple для разработчиков:

Поддержка нового масштаба экрана. В iPhone 6 Plus используется новый дисплей Retina HD с масштабом экрана 3,0. Чтобы обеспечить максимальное удобство использования этих устройств, добавьте новые изображения, разработанные для этого масштаба экрана. В Xcode 6 каталоги активов могут включать изображения размером 1x, 2x и 3x; просто добавьте новые ресурсы изображения, и iOS выберет правильные ресурсы при запуске на iPhone 6 Plus. Поведение при загрузке изображения в iOS также распознает суффикс @ 3x.

Все еще не понимаю, почему все устройства загружают @ 3x. Может это потому, что я использую обычные файлы, а не xcasset? Скоро попробую.

Редактировать после дальнейшего тестирования: Хорошо, похоже, что iOS8 говорит об этом. При тестировании на симуляторе iPhone 5 iOS 7.1 он правильно использует изображение @ 2x. Но при запуске того же самого на iOS 8 он использует @ 3x на iPhone 5. Не уверен, что это желаемое поведение или ошибка / ошибка в iOS8 GM или симуляторах в Xcode 6.

person TSob    schedule 11.09.2014
comment
Да, я тестировал с симулятором, все устройства принимают изображения @ 3x, что действительно сбивает с толку - person Bhumit Mehta; 11.09.2014
comment
Итак, в заключение, на сегодняшний день наилучшим возможным путем было бы использование @ 2x в именах изображений, но каким-то образом проверка устройства для 6 Plus и использование 3-кратного изображения БЕЗ @ 3x, чтобы не отравить 2x устройства? - person darkheartfelt; 18.10.2014
comment
Кажется, что выбор 3x на iPhone 6 возможен только в том случае, если рассматриваемый актив - это JPG вместо PNG. - person emreberge; 07.04.2015

ОБНОВЛЕНИЕ:

Новая ссылка для размера изображения иконок от Apple.

https://developer.apple.com/ios/human-interface-guidelines/graphics/image-size-and-resolution/

введите здесь описание изображения


Да, это правда, здесь Apple предоставляет официальную документацию по размер значков или изображений

введите описание изображения здесь

вам необходимо установить изображения для iPhone6 ​​и iPhone6 ​​+

Для iPhone 6:

750 x 1334 (@2x) for portrait

1334 x 750 (@2x) for landscape

Для iPhone 6 Plus:

1242 x 2208 (@3x) for portrait

2208 x 1242 (@3x) for landscape

Для настройки размера изображений для элементов управления вы можете установить 1x @ 2x и @ 3x следующим образом:

введите описание изображения здесь

person Nitin Gohel    schedule 11.09.2014
comment
если все устройства имеют сетчатку 2x или 3x, почему каталог ресурсов запрашивает изображения 1x в проектах для таргетинга для iPhone только на iOS 7/8? Не имеет смысла. - person Duck; 11.09.2014
comment
может быть, что для iphone4 @RubberDuck :) посмотрите, что ipad 2 и iPad Mini нуждаются в 1x - person Nitin Gohel; 11.09.2014
comment
извините, но вы не прочитали то, что я написал. Я говорю о проекте только для iPhone для iOS 7. Не существует iphone с 1x, который мог бы запускать iOS 7, но каталог ресурсов все еще требует этого. - person Duck; 11.09.2014
comment
@RubberDuck Выберите ресурс изображения, а затем просмотрите панель утилит в правой части Xcode. На одной из вкладок есть набор флажков. Возможно, на ваших активах установлено слишком много флажков, в результате чего 1x появляется в качестве опции. - person rmaddy; 12.09.2014
comment
@RubberDuck Даже если есть место для 1x, вам не нужно его использовать. Мы опубликовали приложение iOS 7+ для iPhone, в котором было всего 2 ресурса. Это было одобрено для App Store. - person jowie; 15.09.2014
comment
@jowie - хорошо, но тогда ваше приложение для iPhone не сможет работать на ipad mini с iOS 7. Вы его тестировали? Мне любопытно узнать, будет ли он работать. - person Duck; 15.09.2014
comment
Мне нужно будет проверить, но из предыдущего опыта я заметил, что активы просто уменьшаются до размера, хотя вы получаете артефакты сглаживания. Поскольку нас не очень заботило, как приложение будет выглядеть на iPad, мы не стали его тестировать. - person jowie; 15.09.2014
comment
Можем ли мы представить приложения для iOS 8 без @ 3x ресурсов? Получат ли они отказ? - person chris stamper; 17.09.2014
comment
developer.apple.com/ios/human -interface -guidelines / graphics / новая ссылка - person JerryZhou; 27.09.2016

Я протестировал, создав образец проекта, и все симуляторы, похоже, используют изображения @ 3x, это сбивает с толку.

Создавайте разные версии изображения в своем каталоге активов, чтобы само изображение сообщало вам, какая это версия:

введите описание изображения здесь

Теперь запустите приложение по очереди на каждом симуляторе. Вы увидите, что 3-кратное изображение используется только на iPhone 6 Plus.

То же самое верно, если изображения взяты из пакета приложений с использованием их имен (например, one.png, [email protected] и one @ 3x .png), вызвав imageNamed: и назначив его в представление изображения.

(Однако есть разница, если вы назначаете изображение представлению изображения в Interface Builder - версия 2x игнорируется на устройствах с двойным разрешением. Это, по-видимому, ошибка, по-видимому, ошибка в pathForResource:ofType:.)

person matt    schedule 11.09.2014
comment
Вы отметили актив как универсальный, поэтому вы видите последовательное поведение. Вместо этого попробуйте выбрать конкретное устройство в раскрывающемся меню! - person Nikolay Spassov; 29.09.2014
comment
@matt, спасибо за ответ. Прошел почти месяц, и мне интересно, была ли эта проблема исправлена, потому что я все еще получил ее в Xcode 6.0.1 и не могу найти ответ в Google. - person inexcii; 08.10.2014
comment
@RalphZhouYuan Что это за проблема? - person matt; 08.10.2014
comment
@matt Проблема, заключающаяся в том, что построитель интерфейса игнорирует изображение версии 2x на устройствах с двойным разрешением, когда вы назначаете изображение UIImageView в своем ответе. Извините за запутанность. - person inexcii; 08.10.2014
comment
@RalphZhouYuan Теперь у меня все работает нормально. Вы не увидите версию 2x в списке, но просто назначьте версию 1x, и версия 2x или 3x будет использоваться правильно. Или просто используйте каталог активов. - person matt; 08.10.2014
comment
@RalphZhouYuan Вот мой загружаемый пример: github.com/mattneub/Programming -iOS-Book-Примеры / tree / master / - отображает как файлы изображений в пакете приложений, так и файлы изображений в каталоге ресурсов, и все они работают правильно. - person matt; 09.10.2014
comment
@matt Я наконец обнаружил, что моя проблема связана с настройками цели развертывания (6.0) моего приложения. Я открыл вопрос: stackoverflow.com/questions/26333278/ и отправил отчет об ошибке в Apple. - person inexcii; 13.10.2014
comment
@RalphZhouYuan Вау, отличная детективная работа по отслеживанию этого! Спасибо за ответ. - person matt; 13.10.2014
comment
Будет ли полезен сценарий, уменьшающий на треть? После стольких экспортирований я написал здесь расширение, velara3.com/wp/2015/01/22/, который экспортирует в несколько размеров, и если уменьшение на 3rds полезно, я добавлю его как один из вариантов по умолчанию. - person 1.21 gigawatts; 31.12.2016
comment
Похоже, что вы начинаете с самого высокого разрешения, а затем создаете два дополнительных изображения меньшего размера. Итак, если вы хотите настроить таргетинг на 3x, вы должны создать свое изображение на 300, и будут созданы версии 200 и 100. Я мог бы это автоматизировать. - person 1.21 gigawatts; 31.12.2016
comment
могу ли я использовать как [email protected], [email protected] и [email protected] в активах @matt - person Dilip Tiwari; 27.10.2018

ios всегда будет пытаться выбрать лучшее изображение, но будет использовать другие варианты ... поэтому, если у вас есть только нормальные изображения в приложении и ему нужны изображения @ 2x, он будет использовать обычные изображения.

если вы поместите в проект только @ 2x и откроете приложение на обычном устройстве, изображение будет уменьшено для отображения.

если вы нацеливаетесь на устройства ios7 и ios8 и хотите лучшего качества, вам понадобятся @ 2x и @ 3x для телефона и обычного и @ 2x для ресурсов ipad, поскольку не осталось телефонов без Retina и нет @ 3x ipad.

возможно, лучше создать ресурсы в приложении из векторной графики ... проверьте http://mattgemmell.com/using-pdf-images-in-ios-apps/

person Bastian    schedule 11.09.2014
comment
просто используйте замечательный PaintCode для векторных изображений в приложениях - person Fattie; 01.10.2014