如何以正确的方式命名 XCode 资产目录中的图像?

Posted

技术标签:

【中文标题】如何以正确的方式命名 XCode 资产目录中的图像?【英文标题】:How to name images in XCode Asset Catalog in the right manner? 【发布时间】:2016-06-13 12:13:29 【问题描述】:

我尝试在 XCode 资产目录中组织图像,但我有点困惑:

(1) 我尝试为不同的图像组创建新文件夹。但是,我可以在不指定文件夹名称的情况下访问图像,例如:

let image = UIImage(named: "btn_tabsetting")

我应该给每张图片一个不同的名字,即使我已经把它们放在不同的文件夹中了吗?

(2) 如下图所示,在test文件夹中,我创建了一个图像btn_tabsetting,它与另一个文件夹中的图像名称相同。为什么 XCode 允许我这样做?当我打电话时

let image = UIImage(named: "btn_tabsetting")

它实际上加载了Tab Setting View文件夹中的那个而不是test文件夹中的那个,为什么会这样?这里的规则是什么?

我想我可能误解了使用资产目录的一些重要概念,请帮助我纠正它们。

【问题讨论】:

XCode 使用组而不是文件夹。阅读此处了解差异***.com/questions/8851144/… @user1941284 我知道文件夹和组的区别,我对它们做得很好,但我认为资产目录的安排不同。 【参考方案1】:

根据文档

对于 Xcode 项目中的任何目标,资产的完全限定名称在所有资产目录和所有资产类型中必须是唯一的。例如,在一个名为 Llama.imageset 的资产目录中拥有一个图像集文件夹和在同一目录或属于同一目标的不同目录中具有相同名称的图像集是错误的。同样,将名为 Llama.imageset 的图像集文件夹和名为 Llama.appiconset 的应用程序图标文件夹同时放在同一目录或属于同一目标的不同目录中也是错误的。

所以资产名称应该是唯一的。我建议将资产组织在逻辑组中,而不是在组内的每个资产前加上组名。 举个例子:

- Icons (group)
    - icon_gear
    - icon_heart
    - icon_edit
    - TabBar (group)
        - icon_tabbar_profile
        - icon_tabbar_settings
    - Settings (group)
        - icon_settings_age
        - icon_settings_name
- Streachables (group)
    - streachable_profile_background
    - streachable_product_background

【讨论】:

【参考方案2】:

Xcode 如果您在 Asset Catlog 中放置了相同名称的图像,则会自动设置不同的图像名称。

假设我已将一张图片作为 xyz.png 放置,然后我再次将 xyz.png 放入其中,xcode 会将其重命名为 xyz_1.png

【讨论】:

我认为btn_tabsetting 在我的示例中不是图像文件名。你的回答也没有回答我的问题。

以上是关于如何以正确的方式命名 XCode 资产目录中的图像?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式更新 Xcode 资产目录

如何将 PSD 文件中的所有图层导出为 PDF 矢量以在 Xcode 6 中使用资产目录

在 Xcode 7 中损坏的资产目​​录中使用 .jpg 图像

以编程方式 Xcode 9 矢量图像

在 Xcode 6 中创建新的资产目录/图像集

如何在资产目录中设置可访问性标签? Xcode 11