小编典典

矢量图像如何在 Xcode(即 pdf 文件)中工作?

all

矢量支持在 Xcode 6 中如何工作?

当我尝试调整图像大小时,它看起来参差不齐,这是什么原因?


阅读 60

收藏
2022-07-27

共1个答案

小编典典

如何在 Xcode(7 和 6.3+)中使用向量:

  1. 以适当的@1x 大小将图像保存为 .pdf文件(例如 ,24x24 用于工具栏按钮)。
  2. 在您的 Images.xcassets 文件中,创建一个新的 Image Set
  3. Attributes Inspector 中,将 Scale Factors 设置为 Single Vector
  4. 将您的 pdf 文件拖放到 All, Universal 部分。
  5. 您现在可以通过名称来引用您的图像,就像您使用任何 .png 文件一样。
    UIImage(named: "myImage")
    

如何在旧版本的 Xcode (6.0 - 6.2) 中使用向量:

  • 按照上述步骤,除了第 3 步,将 Types 设置为 Vectors

向量在 Xcode 中的工作原理

矢量支持在 Xcode 中令人困惑,因为当大多数人想到矢量时,他们会想到可以放大和缩小但仍然看起来不错的图像。但是,Xcode 6 和 7 没有对 iOS
的完整矢量支持,所以工作方式略有不同。

矢量系统 真的很简单 。它获取您的.pdf图像,并在
构建时@1x.png创建、@2x.png@3x.png资产。

例如,假设给定foo.pdf的是 44x44 矢量资产。在 构建时 ,它将生成以下文件:

  • foo@1x.png44x44
  • foo@2x.png88x88
  • foo@3x.png132x132

这对任何大小的图像都一样。例如,如果你有bar.pdf100x100,你会得到:

  • bar@1x.png100x100
  • bar@2x.png200x200
  • bar@3x.png在 300x300

影响:

  • 您不能为图像选择新尺寸 ;只有保持 44x44 尺寸,它才会看起来不错。原因是 没有实现全向量支持 。这些矢量唯一能做的就是节省您保存图像资源的时间。如果您有一个工具(例如 Photoshop 脚本)已经使此过程成为一个步骤,那么使用 pdf 矢量将获得的唯一好处是 面向未来的支持 (例如,如果在 iOS 9 Apple 开始需要 @4x 资产,这些将正常工作),并且您将需要 维护的文件更少
  • 您应该要求以@1x 大小保存所有资源,并保存为 PDF 文件 。除此之外,这将允许 UIImageViews 具有正确的内在内容大小。

为什么它(可能)以这种方式工作:

  • 这使其 向后兼容 以前的 iOS 版本。
  • 在运行时调整向量的大小可能是一项计算密集型任务;通过以这种方式实现它, 不会影响性能
2022-07-27