Как загрузить изображения в Xcode

Чтобы использовать изображения в Xcode, вам необходимо загрузить их Assets.xcassetsв Supporting Filesпапку , расположенную в папке. Вы можете использовать два варианта: растровые изображения (также известные как pngфайлы) или векторы (также известные как .pdfфайлы). Первый шаг - решить, какой тип файла вы хотите использовать.

Разница между растровыми изображениями и векторными ресурсами

В большинстве онлайн-руководств используются растровые ресурсы, которые представляют собой .pngфайлы. Для этого вам потребуется перетащить более 3 копий изображения в Xcode.

Однако существует точка зрения, согласно которой векторные активы лучше. В этой статье есть отличное объяснение того, почему это так. Векторные ресурсы - это .svgфайлы (или .pdfдля Xcode). Если вы решите использовать векторные ресурсы, вам нужно загрузить только одну версию изображения в Xcode.

Вот что я слышал от тех, кто намного умнее, чем телефоны I – Android, используют алгоритмы из векторного ресурса для создания изображения любого необходимого размера. Имеет смысл, учитывая широкий спектр устройств и размеров экрана для Android.

Однако векторные ресурсы в iPhone фактически не масштабируются с помощью алгоритмов (по-видимому). Таким образом, вы не получите изображения более высокого качества, используя векторы вместо растровых изображений. Вместо этого вы получаете то же качество, что и растровое изображение. IPhone просто берет «векторный» ресурс и преобразует его в те же три размера растрового изображения.

Помимо приведенной выше логики алгоритма, есть несколькоболее объективные преимущества использования векторных ресурсов для iPhone.

  1. Снижает вероятность человеческой ошибки. Сейчас есть три размера растрового изображения (1x, 2x, 3x). Это означает, что вам нужно загрузить три изображения в свои активы. Это три возможности случайно перетащить не то изображение. Когда вы используете векторные ресурсы (которые в Xcode являются универсальными), вам нужно загрузить только одно изображение вместо трех. Меньше шансов загрузить неправильный размер или изображение.
  2. Скорость. По той же причине, что и №1. Если вы используете много изображений в своем приложении, то использование векторных ресурсов сокращает количество изображений, которые вам нужно загрузить, на треть.
  3. Перспективы. В настоящее время iPhone использует только три размера изображения (1x, 2x, 3x). Это связано с повышенным качеством сетчатки экранов. Когда несколько лет назад Apple представила экраны с высокой сетчаткой, количество пикселей на точку увеличилось для получения более четкого изображения.

    Представляется весьма вероятным, что аналогичный технологический рост продолжится. В будущем нам может потребоваться загрузить изображения 4x, 5x и 6x. Если мы используем векторный ресурс, приложение масштабирует изображение за нас. Это избавляет нас от необходимости отказываться от новых размеров ресурса растрового изображения.

    Хотя я должен признать, что меня это немного смущает, учитывая, что векторные ресурсы iPhone, похоже, на самом деле не работают с алгоритмами. Поэтому я не уверен, как они будут автоматически масштабироваться до большего размера. Но мой мудрый наставник объяснил это, и я ему доверяю!

Одним из больших недостатков использования векторных ресурсов в Xcode является то, что в большинстве мест .pdfфайл не предоставляется . Вам нужно сконвертировать это из .svgсебя.

Обновление от 18 июня 2017 года : Apple объявила на WWDC, что iOS теперь поддерживает истинные скалярные изображения! По крайней мере, я так думаю, что они объявили. Теперь есть еще больше причин использовать единую шкалу.

Как загрузить векторный ресурс

Перейдите в меню атрибутов. Измените масштаб на «единичный масштаб» и установите флажок изменения размера на «сохранить векторные данные». Это изменит параметр загрузки на «все» вместо 1x, 2x, 3x.

Затем вы перетаскиваете .pdfфайл в один слот. Я не слишком уверен , как конвертировать .svgв .pdf, но я предполагаю , что это довольно легко с предварительным просмотром.

Как загрузить файлы .png

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

Во-первых, убедитесь, что для параметра «Масштаб» в меню атрибутов установлено значение «Индивидуальные масштабы». Это вариант по умолчанию, и он покажет вам три слота, которые вы должны заполнить:

Во-вторых, найдите изображение, которое вы хотите использовать в своем приложении. Предположим, это значок:

Вау, это большое. Это потому, что я скачал с сайта версию на 512 пикселей. Однако я хочу, чтобы изображение в моем приложении было только 20 x 20 пикселей. Чтобы преобразовать изображение в 20 пикселей, я изменю его размер в Preview.

Сделайте три копии исходного изображения. Названия вашего изображения должны выглядеть следующим образом : zen.png, [email protected], [email protected]. Важная часть состоит в том, что все файлы имеют одно и то же имя (здесь я использую zen), а два из них заканчиваются на @2xи @3x. Когда вы используете это соглашение об именах, Xcode сможет автоматически найти правильный размер в зависимости от типа устройства.

Затем откройте изображение в Preview и перейдите в Инструменты> Настроить размер, чтобы открыть меню ниже. Укажите 20 x 20 пикселей. Нажмите ок и сохраните изменения. Это ваше базовое изображение zen.png.

Сделайте то же самое для [email protected]. Только это должно быть 40 х 40 пикселей. Еще раз для [email protected]. Это будет 60 х 60 пикселей.

Теперь вы можете перетаскивать изображения в нужные поля в Xcode. Выполнено!