Я провел некоторое тестирование, и я думаю, что нашел, почему он не работает.
Там есть (небольшой) Bug
Если вы не установили все из alignment
значений в редакторе каталога активов в нечто иное, чем 0
, то ни значений выравнивания будет выполнен при вы загружаете этот ресурс изображения. Поскольку для некоторых значений выравнивания вполне разумно быть 0
, я считаю, что это ошибка, и я подниму ее на Radar. Однако, как сказано, эта функция все еще очень полезна, и я планирую ее использовать.
ПИКСЕЛЯХ & Очки
Стоит знать, что выравнивание, что вы установили в редакторе каталог активов для разномасштабную PNG, определяется в пикселей и не в точках.
Когда вы загружаете актив, а затем задаете изображение для своего alignmentRectInsets
, результат будет сообщен в точках. Т.е. масштабный коэффициент этого конкретного актива будет применяться к значениям, которые вы задали в редакторе.
Пример: если вы установите выравнивание 30, 30, 30, 30
на вашем @3x
актива, а затем загрузить UIImage
, вы увидите, что это alignmentRectInsets
являются 10, 10, 10, 10
.
Векторный актив
Я также испытал векторный актив. Здесь у вас есть одно векторное изображение, и вы указываете для него один набор значений выравнивания.
В этом случае одного вектора актива, Выравнивание в редакторе каталога активов определяется в точках и не в пикселях. Это противоположная ситуация для многомасштабного PNG!
Когда вы загружаете актив и запрашиваете его aligmentRectInsets
, вы увидите те же самые значения, независимо от масштаба, который загружает UIKit для этого изображения.
... Это на самом деле имеет смысл и не будет работать, если будет сделано иначе. Но похоже, что это может поймать людей.