在 Xcode 7.2 中为图标图像使用 PDF
Posted
技术标签:
【中文标题】在 Xcode 7.2 中为图标图像使用 PDF【英文标题】:Using PDFs for icon images in Xcode 7.2 【发布时间】:2016-02-10 02:56:33 【问题描述】:我正在尝试将 PDF 文件用作我正在开发的应用程序中的图标。我遇到的问题是色调不一致。
如果我从界面生成器中设置按钮图像,则图标图像会在运行时显示为 黑色。每次。无论我尝试从界面生成器中设置什么。
我尝试通过代码设置按钮图标图像,不是显示为黑色,而是白色:
let myGraphicFile = UIImage(named: "myPDFImage")
let myButtonImage = myGraphicFile?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)
myButton.setImage(myButtonImage, forState: .Normal)
从代码中,无论我尝试将色调设置为什么,它总是从代码中显示为白色。
我发现了这篇与 Xcode 6.x 相关的帖子,但我认为它可能已经过时了,因为我可以部分完成,但我无法设置色调。
Use PDF in XCode for an AppIcon (.appiconset collection)
我在 Inkscape 中创建图标,保存为 PDF 1.5。我将文件添加到Images.xcassets
。在Images.xcassets'
属性检查器中,我正在设置:
设备到通用
比例因子到单个向量。
总结:我可以让它正确显示和缩放,但它要么是界面生成器的黑色,要么是代码的白色。我怀疑我遗漏了一些东西:如何从 Inkscape 保存文件。
感谢您的阅读。如果您有任何建议,我欢迎他们。
【问题讨论】:
您需要将渲染模式设置为始终原始 或者改为setBackgroundImage @LeoDabus 感谢您的建议。我尝试了这两种方法,现在按钮上显示的图像是黑色的。我可以更改按钮的背景颜色,但图像,无论是image
还是backgroundImage
都显示为黑色。
对于 ios,Xcode 在构建时生成单独的 @1x @2x @3x 文件,而不是 OSX 动态生成。也许删除派生数据(或进行干净的构建CMD + Shift + K
然后正常构建可能会修复它?
【参考方案1】:
我已经知道如何使用 Inkscape 创建矢量图标。在 iOS 中使用 PDF 显示图标时,需要在 xcAssets
中为您的图标更改属性检查器,如下所示:
1) 将 PDF 拖入 xcAssets
2) 设置设备(我做了 Universal,效果很好)
3) 如果您的 PDF 图标在 1x、2x 或 3x 大小等级以下,请将其拖到 Universal 并删除其余部分。
4) 将比例因子设置为Single Vector。
5) 呈现为模板图像。
一旦在此处配置,您只需将其视为界面构建器中的任何其他图像。这与我在代码中所做的基本相同,但我认为它不会在代码中完成......它必须在图像所在的 xcAssets 上完成。我的理解是 iOS 在运行时为 size 类渲染矢量图像。我认为尝试在代码中调整它是行不通的,因为图像已经被渲染了。
如果有人对此有任何疑问,我发现 this link 有助于解决我的问题。
此外,这篇文章也涵盖了该主题。 https://***.com/a/25804358/4475605
【讨论】:
这适用于普通图像,但我注意到实际的 AppIcon 不能这样设置。您仍然需要非矢量图像 @edwardmp 为此在 Github 上有一些脚本。您只需向他们提供 1024x1024 的图像,他们就会吐出您需要的所有图标大小。 我在 Xcode v10.2 中找不到 Scale Factors 选项。我能看到的最接近的是Scales,它有“单一比例”(即全部)和“个人比例”(即1x、2x、3x)的选项;但是,这并没有提到任何关于 Vector 的内容,并且在选择“Single Scale”时似乎没有缩放图像。知道这个选项现在在哪里吗?我正在检查的资源是矢量 PDF,所以这不是问题。以上是关于在 Xcode 7.2 中为图标图像使用 PDF的主要内容,如果未能解决你的问题,请参考以下文章
使用 SVG(作为 PDF)的自定义 UITabBarItem 图像在 Xcode ios 中应该是啥尺寸?
如何将 PSD 文件中的所有图层导出为 PDF 矢量以在 Xcode 6 中使用资产目录
在 xcode 7.1 中为 iPad Pro 上传 App 图标