IOS/Xcode: безопасно перетаскивать изображения в Images.xcassets без предварительного добавления?

Обычно, чтобы добавить файл в Xcode, я сначала перемещаю его в каталог проекта, а затем нажимаю «Добавить файл», чтобы добавить его в проект. Причина, по которой я сначала перемещаю его в каталог проекта, заключается в том, чтобы избежать случаев случайного перемещения или удаления файла, который может находиться в загрузках, на рабочем столе или где-то еще.

Однако с набором изображений в images.xcassets Xcode, кажется, позволяет вам просто перетащить файл на место заполнителя, и он автоматически импортирует изображение. Я не знаю, где он действительно хранит изображение, и я не знаю, хранит ли он его в безопасном месте. Я также заметил несколько странных вещей, например, если щелкнуть правой кнопкой мыши и открыть в Finder, он взял изображение размером 25x25 и создал изображение размером 26x26 или создал копию изображения размером от 50x50 до 51x51. Они появляются в папке с именем blank.imageset, где пустым является имя набора изображений. Понятия не имею, почему он это делает.

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

Был бы признателен за любое освещение того, что происходит за кулисами, и безопасно ли просто перетаскивать из любого случайного места.

Заранее спасибо за любые рекомендации.


person user6631314    schedule 07.03.2018    source источник


Ответы (2)


Перетаскивать изображения безопасно. Я делаю это с тех пор, как эта функция появилась в XCode, и не сталкивался с какими-либо проблемами. Я просто удостоверяюсь, что когда я добавляю изображения таким образом, я вижу, что следующий коммит в моем репозитории git включает эти добавленные изображения.

Для этого:

Он взял изображение размером 25x25 и создал изображение размером 26x26 или создал копию изображения размером от 50x50 до 51x51.

Я думаю, что проблема обычно связана с размерами изображения, где изображение с 25x25 и 50x50 на самом деле имеет размеры 25,6x25,5 и 50,5x50,5, которые отображаются как правильные размеры в вашем Finder, но если вы откроете его в Sketch или Photoshop , вы можете увидеть реальные размеры.

Когда вы перетаскиваете такие изображения в Xcode, он показывает округленные размеры.

Как правило, я пытаюсь получить ресурсы дизайна, у которых нет таких проблем, гарантируя, что ресурс изображения @1x является целым числом, а изображения @2x и @3x являются точными кратными. Трудно поверить, как часто я получал изображения, которые не являются точными кратными, которые все еще хорошо отображаются, но иногда могут выглядеть размытыми на экране с более высоким разрешением из-за несоответствия. (это было очевидно во времена 4S и iPhone 5).

Теперь, когда нет необходимости проектировать для @1x, поскольку все устройства имеют сетчатку (если вы не поддерживаете более старые версии iOS), проблема может возникнуть даже при разработке ресурсов для @2x. Размер изображения @3x будет 79,5x79,5, если размер изображения @2x 53x53.

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

Такие активы приведут к проблемам, когда вы думаете, что это одно измерение, а XCode показывает отклонение на 1 пиксель.

О пустом наборе изображений

Они появляются в папке с именем blank.imageset, где пустым является имя набора изображений. Понятия не имею, почему он это делает.

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

Вы можете иметь свои изображения как lion.png, [email protected], [email protected] и поместить их в папку ресурсов изображений, это создаст файл blank.imageset. Коснитесь blank.imageset еще раз, и вы сможете переименовать его в cat.imageset. И вы можете использовать это изображение в своем коде как .....imageNamed: "cats"......

person Nitin Alabur    schedule 07.03.2018

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

Однако не сталкивались с изменением размера, возможно, вы выбрали неправильный размер изображения?

person Anton Malyshev    schedule 07.03.2018
comment
Для значков контроллера панели вкладок я использую 25x25, 50,50 и 75x75, которые, как мне кажется, рекомендует Apple. Что вы собираетесь использовать? - person user6631314; 07.03.2018
comment
Лучше сделайте скриншот, что именно у вас в Xcode при открытии файла .xcassets, у них может быть несколько форматов. - person Anton Malyshev; 07.03.2018