Только для iPhone, приложение iOS 7+, можем ли мы включать только изображения @ 3x?

Чтобы уменьшить размер пакета, возможно ли (и это хорошая идея) добавлять только изображения @ 3x?

Чтобы уточнить, я имею в виду не значок приложения, изображение запуска и т. Д., А изображения, которые являются внутренними для приложения, например фоновые изображения UIButton.

Я видел Разрешение изображения для новых iPhone 6 и 6 +, Добавлена ​​поддержка @ 3x?, но это не ответило на мой вопрос.


person abc123    schedule 29.09.2014    source источник
comment
Вы пробовали это? Это работает? Обязательно выполните чистую сборку и удалите приложение с устройства / симулятора, чтобы убедиться, что не осталось существующих изображений 1x и 2x.   -  person rmaddy    schedule 29.09.2014


Ответы (3)


Да, можете, но не должны.

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

Обновление. Начиная с iOS 9, Apple представила App Thinning, что означает, что добавление изображений большего размера больше не приведет к увеличению размера вашего пакета. App Store автоматически создает тонкий двоичный файл для каждого конкретного устройства и включает только соответствующие размеры изображений @ 3x или @ 2x.

Я не рекомендую использовать только @ 3x, если вам нужно поддерживать старые устройства. Встраивание только изображений @ 3x приведет к уменьшению ваших изображений при каждом запуске приложения. У этого подхода есть следующие недостатки:

  • У вас нет контроля над режимом масштабирования изображения, который использует iOS. На некоторых изображениях после автоматического масштабирования могут появиться значительные пиксели и / или артефакты.
  • Масштабирование изображений может потенциально снизить производительность приложения. Это особенно актуально для старых устройств, которые будут сильно масштабироваться. Использование только изображений @ 3x увеличит время обработки этих операций масштабирования даже больше, чем уменьшение с @ 2x.
  • У вас не будет возможности для пиксельного экспорта активов. Многие дизайнеры тратят время на то, чтобы вручную масштабировать свои графические ресурсы, чтобы гарантировать, что мелкие штрихи и текстуры не будут нарушены. Это обеспечивает наилучшее взаимодействие со всеми типами устройств.

Если вы заботитесь о том, чтобы ваши приложения выглядели четкими и четкими на большинстве устройств, я настоятельно рекомендую вам хотя бы экспортировать изображения с плотностью экрана @ 2x и @ 3x. В зависимости от требований совместимости проекта я иногда предпочитаю не экспортировать @ 1x.

Если вы ориентируетесь только на iPhone с iOS 7+, вам определенно не нужно экспортировать @ 1x. Все устройства iPhone @ 1x не поддерживают iOS 7+. Единственные устройства @ 1x, о которых вам нужно будет беспокоиться, - это iPad 2 и iPad mini (без сетчатки).

Еще одно примечание: исследуя ваш вопрос, я слышал слухи, что Apple может отклонить ваши приложения из-за того, что у них нет изображений с любой плотностью. Я никогда этого не испытывал. Единственное, что я смог найти в руководстве для разработчиков, - это правило.

2.10 Приложения для iPhone также должны работать на iPad без изменений, с разрешением iPhone и с разрешением 2X iPhone 3GS.

Мне кажется, это означает, что пока это работает, ты в порядке. Но давай, чувак, сделай это красивым!

person dfmuir    schedule 29.09.2014

В моем тестировании я обнаружил, что @ 3x не распознается на iOS 7 и ниже. Поэтому, если вы планируете поддерживать iOS 7 и 8, вам обязательно нужно включать изображения @ 2x.

Что касается разрешения указанных изображений, я пока не нашел удовлетворительного ответа. Для приложения, над которым я работаю, на примере полноэкранного jpg (вероятно, фото) я бы сохранил с разрешением 1242x2208 для @ 3x и 750x1334 для @ 2x, чтобы соответствовать самому высокому разрешению, в котором эти изображения будут отображаться на iPhone. Это не идеальное по пикселям решение, поскольку изображения необходимо будет уменьшить на устройствах, отличных от iPhone 6 (+), но я думаю, что это хорошая золотая середина, которая не требует слишком большой дополнительной работы с операторами if, определяющими, какое изображение основано на размер экрана (тьфу) и 5 ​​разных картинок.

Одна вещь, которую следует отметить в отношении проблем с производительностью, которые вызывает dfmuir, заключается в том, что эти изображения будут уменьшаться во многих случаях, 4 / 4S, 5 / 5S, 6/6 + в режиме масштабирования дисплея, даже если вы используете Предпочтительный метод Apple, включающий 3 изображения в @ 1x, @ 2x и @ 3x, поскольку теперь у нас есть 5 (или 6, включая 3gs) различных разрешения (см. строку отображаемых пикселей в этой таблице для получения дополнительной информации: http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions )

Единственный способ избежать этих проблем с изображениями, похожими на фотографии (без учета элементов пользовательского интерфейса), - это спроектировать их таким образом, чтобы изображения были привязаны к точкам (так что размер оставался того же размера относительно большого пальца, а не большого пальца). относительно размера экрана телефона), но это не всегда имеет смысл с точки зрения дизайна приложения. Примером может служить кадрирование на телефонах с более низким разрешением вместо уменьшения.

person Kyle Fleming    schedule 05.10.2014

Следует отметить, что @ 3x уже уменьшено устройством. 3 - это масштаб UIDevice, тогда как экран фактически в некотором смысле имеет nativeScale. Итак, если аргумент верен, он должен правильно работать и для других плотностей от @ 3x.

Конечно, если изображение имеет несколько острых углов с одним пикселем, расположенным по углам, можно точно расположить его, вместо того, чтобы позволять ОС выбирать его, применяя любой непрерывный фильтр, который она собирается применить к уменьшению масштаба.

person de-bits    schedule 23.07.2016
comment
Фактически, со вчерашнего дня Apple разрешает только один набор изображений. Apple отправила письмо со строкой: ... Просто отправьте один набор снимков экрана и один необязательный предварительный просмотр приложения для самого большого размера устройства в семействе устройств .. В общем, при изменении размера нужно позаботиться о применении фильтра размытия, такого как по гауссовскому до масштабирования. - person de-bits; 10.08.2016