Xcode 资产目录 `Alignment` 属性被 `imageWithName:` 忽略
Xcode asset catalogue `Alignment` properties are ignored for `imageWithName:`
Xcode 资产目录编辑器支持图像 Alignment
属性。看起来这似乎是一种设置 UIImage
的 alignmentRectInsets
的机制,Apple 的 Asset catalogue reference 也强烈建议这样做:
alignment-insets
Dictionary
The insets for alignmentRectInsets in UIImage or for alignmentRect in NSImage. The inset tag can be omitted.
但是,当我从已使用编辑器设置 Alignment
的目录加载图像时,它没有对齐。
我正在使用 [UIImage imageNamed:]
加载图像。
这是一个已知错误,还是我遗漏了一些微妙之处?
我已经做了一些测试,我想我已经找到了它不起作用的原因。
有一个(小)错误
如果您没有将资产目录编辑器中 alignment
值的 所有 设置为 0
以外的值,则 none 的对齐值将在您加载该图像资源时得到尊重。由于某些对齐值 0
是完全合理的,我认为这是一个错误,我会在 Radar 上提出它。不过——话虽这么说,这个功能还是蛮有用的,我打算用一下。
像素和点
值得一提的是,您在资产目录编辑器中为 多尺度 PNG 设置的对齐方式定义为 像素 和 不在点数 。
当您加载资产然后向图像询问其 alignmentRectInsets
时,结果报告为 点 。也就是说,该特定资产的比例因子将应用于您在编辑器中设置的值。
例如:如果您在 @3x
资产上设置 30, 30, 30, 30
的对齐方式,然后加载 UIImage
,您会看到它的 alignmentRectInsets
是 10, 10, 10, 10
.
矢量资产
我还测试了矢量资产。在这里,您有一个矢量图像,并为其指定一组对齐值。
在这种情况下,单矢量资产,资产目录编辑器中的对齐定义为点和不以像素为单位。这与多尺度 PNG 正好相反!
当您加载资产并请求其 aligmentRectInsets
时,您将看到报告的相同值,无论 UIKit 为该图像加载的缩放比例如何。
…这其实是有道理的,换种方式就不行了。但似乎它可能会把人赶出去。
Xcode 资产目录编辑器支持图像 Alignment
属性。看起来这似乎是一种设置 UIImage
的 alignmentRectInsets
的机制,Apple 的 Asset catalogue reference 也强烈建议这样做:
alignment-insets
Dictionary
The insets for alignmentRectInsets in UIImage or for alignmentRect in NSImage. The inset tag can be omitted.
但是,当我从已使用编辑器设置 Alignment
的目录加载图像时,它没有对齐。
我正在使用 [UIImage imageNamed:]
加载图像。
这是一个已知错误,还是我遗漏了一些微妙之处?
我已经做了一些测试,我想我已经找到了它不起作用的原因。
有一个(小)错误
如果您没有将资产目录编辑器中 alignment
值的 所有 设置为 0
以外的值,则 none 的对齐值将在您加载该图像资源时得到尊重。由于某些对齐值 0
是完全合理的,我认为这是一个错误,我会在 Radar 上提出它。不过——话虽这么说,这个功能还是蛮有用的,我打算用一下。
像素和点
值得一提的是,您在资产目录编辑器中为 多尺度 PNG 设置的对齐方式定义为 像素 和 不在点数 。
当您加载资产然后向图像询问其 alignmentRectInsets
时,结果报告为 点 。也就是说,该特定资产的比例因子将应用于您在编辑器中设置的值。
例如:如果您在 @3x
资产上设置 30, 30, 30, 30
的对齐方式,然后加载 UIImage
,您会看到它的 alignmentRectInsets
是 10, 10, 10, 10
.
矢量资产
我还测试了矢量资产。在这里,您有一个矢量图像,并为其指定一组对齐值。
在这种情况下,单矢量资产,资产目录编辑器中的对齐定义为点和不以像素为单位。这与多尺度 PNG 正好相反!
当您加载资产并请求其 aligmentRectInsets
时,您将看到报告的相同值,无论 UIKit 为该图像加载的缩放比例如何。
…这其实是有道理的,换种方式就不行了。但似乎它可能会把人赶出去。