2016-06-17 5 views
1

Редактор каталога ресурсов Xcode поддерживает свойство Alignment для изображений. Это очень похоже, это предназначено в качестве механизма для установки UIImage «s alignmentRectInsets, и Apple, Asset catalogue reference сильно предполагает, что это слишком:Свойства каталога Xcode `Alignment` игнорируются для` imageWithName: `

выравнивающих-вставки

словарь

вставок для alignmentRectInsets в UIImage или для alignmentRect в NSImage. Тег вставки можно опустить.

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

Я загружаю изображения, используя [UIImage imageNamed:].

Является ли это известной ошибкой, или есть какая-то утонченность, которую мне не хватает?

ответ

4

Я провел некоторое тестирование, и я думаю, что нашел, почему он не работает.

Там есть (небольшой) Bug

Если вы не установили все из alignment значений в редакторе каталога активов в нечто иное, чем 0, то ни значений выравнивания будет выполнен при вы загружаете этот ресурс изображения. Поскольку для некоторых значений выравнивания вполне разумно быть 0, я считаю, что это ошибка, и я подниму ее на Radar. Однако, как сказано, эта функция все еще очень полезна, и я планирую ее использовать.

ПИКСЕЛЯХ & Очки

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

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

Пример: если вы установите выравнивание 30, 30, 30, 30 на вашем @3x актива, а затем загрузить UIImage, вы увидите, что это alignmentRectInsets являются 10, 10, 10, 10.

Векторный актив

Я также испытал векторный актив. Здесь у вас есть одно векторное изображение, и вы указываете для него один набор значений выравнивания.

В этом случае одного вектора актива, Выравнивание в редакторе каталога активов определяется в точках и не в пикселях. Это противоположная ситуация для многомасштабного PNG!

Когда вы загружаете актив и запрашиваете его aligmentRectInsets, вы увидите те же самые значения, независимо от масштаба, который загружает UIKit для этого изображения.

... Это на самом деле имеет смысл и не будет работать, если будет сделано иначе. Но похоже, что это может поймать людей.

Смежные вопросы