【问题标题】:Referencing image in a folder in asset catalog引用资产目录中文件夹中的图像
【发布时间】:2014-09-14 08:39:27
【问题描述】:

您可以在资产目录中创建文件夹。

在文件夹中,所有图像名称都必须是唯一的。

如果您有一个名为myImage 的图像,并且您尝试将另一个图像命名为myImage,那么它将自动重命名为myImage-1

但是如果你有两个文件夹,那么你可以在不同的文件夹中拥有同名的图像。

那么,一定有办法引用这些吗?

有谁知道如何通过资产目录中的文件夹和图像名称来引用图像?

【问题讨论】:

  • 你找到解决办法了吗?
  • @nonamelive 不,最后我创建了一个 plist 文件来存储图像列表并从那里加载它们。我找不到引用实际文件夹的方法。
  • @Fogmeister 我正在尝试做同样的事情!您是否使用脚本来创建他的 plist?如果可以,可以分享一下吗?
  • 嗨@Dionysis,我创建的 plist 是从 Numbers 电子表格生成的。我在 Xcode 中创建了一个 plist 并添加了一些图像。然后我采用格式并将其复制到电子表格中,将图像名称替换为每行单元格的内容。然后我使用文本编辑器将其复制回 plist。没有什么太聪明的TBH了。希望对您有所帮助。
  • @Fogmeister 啊,我明白了.. 我想我最终也可能不得不手动完成。我正在尝试以编程方式填充 plist。无论如何谢谢:)

标签: ios objective-c uiimage asset-catalog


【解决方案1】:

我花了很多时间,但终于弄明白了。 Answered here。复制如下。

在资产目录中选择您要为其添加命名空间的每个文件夹。转到文件夹属性并在名称下选择“提供命名空间”。这应该为您的最终资产目录正确设置子目录。

您可以通过编辑每个文件夹的 Contents.json 手动执行此操作。您可以使用正确的格式添加以下内容。

"properties" : {
      "provides-namespace" : true
}

【讨论】:

  • 来自documentation:“全名包括标记为提供命名空间的任何组或精灵图集文件夹的名称。例如,如果组文件夹哺乳动物包含图像集 Llama.imageset,则图像集的完全限定名称为 mammals/Llama。”
  • 看起来很有希望。我的项目为时已晚,但我会对其进行测试并通知您。
  • 当然可以。正如另一位评论者所提到的,这似乎是一个相对容易的发现。但是我仍然花了一点时间来弄清楚如何让它工作。希望这里有足够的关键字,以便其他人可以轻松找到它。
  • xcode 7 至少在文件夹设置中有一个标志。感谢您的解决方案。
【解决方案2】:

视觉说明

(基于 Xcode 10.1)

要让路径唯一标识资产目录图像,请将文件夹的“提供命名空间”属性设置为 true

1) 选择资产目录文件夹。

*如果“提供命名空间”为false,则该文件夹为黄色。

2) 确保 Inspectors 面板可见



3) 在 Inspectors 面板中,选择 Attributes Inspector。选中“提供命名空间”复选框。



请注意,文件夹图标变为蓝色,表示“提供命名空间”为真。



在代码中引用图像时,请记住包含命名空间。

let image = UIImage(named: "Icon/Menu")

【讨论】:

  • 感谢他们非常有用的图片!
猜你喜欢
  • 1970-01-01
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-14
  • 1970-01-01
  • 2017-01-16
  • 1970-01-01
相关资源
最近更新 更多