Xcode资产目录的“ Alignment”属性被“ imageWithName:”忽略。

Ben*_*ohn 1 alignment uiimage asset-catalog

Xcode资产目录编辑器支持Alignment图像属性。这非常看起来这旨在为设置的机制UIImagealignmentRectInsets,并且苹果公司的资产目录参考强烈建议这个太:

对齐插入

字典

UIImage中的alignmentRectInsets或NSImage中的alignmentRect的插图。插入标签可以省略。

但是,当我从Alignment使用编辑器打开的目录中加载图像时,它没有对齐。

我正在使用加载图像[UIImage imageNamed:]

这是一个已知的错误,还是我缺少一些细微之处?

Ben*_*ohn 5

我做了一些测试,我想我发现了为什么它不起作用。

有一个(小)错误

如果未将资产目录编辑器中的所有alignment设置为以外的其他值0,那么在加载该图像资源时,将不接受任何对齐值。由于将某些对齐值设为完全合理0,我相信这是一个错误,我将在Radar上提出。但是,尽管如此,该功能仍然非常有用,我打算使用它。

像素和点

值得一提的是,您在资产目录编辑器中为多比例PNG设置的路线是用像素不是点定义的。

当您加载资产,然后要求其提供图像alignmentRectInsets,报告结果的点。即,该特定资产的比例因子将应用于您在编辑器中设置的值。

例如:如果您30, 30, 30, 30@3x资产上设置的对齐方式,然后加载UIImage,则会看到它alignmentRectInsets10, 10, 10, 10

矢量资产

我还测试了矢量资产。在这里,您有一个矢量图像,并为其指定了一组对齐值。

单个矢量资产的情况下,资产目录编辑器中的“对齐”以不是像素定义。这与多尺寸PNG相反!

当您加载资产并要求时aligmentRectInsets,无论UIKit为该图像加载的比例如何,您都会看到报告的相同值。

……这实际上是有道理的,并且如果做不同的话将无法工作。但似乎它可能会吸引人们。