【问题标题】:Search color by hex code in xcode Colours asset在 xcode 颜色资产中按十六进制代码搜索颜色
【发布时间】:2020-04-15 09:30:02
【问题描述】:

如果资产中已经存在像 #4D4D4D 这样的颜色,我如何在 Xcode 中进行搜索?我试过用十六进制代码搜索,但没有显示任何内容。

【问题讨论】:

  • 资产目录颜色集中的颜色是如何编码的?
  • @matt 在 Json 文件上,例如: { "info" : { "version" : 1, "author" : "xcode" }, "colors" : [ { "idiom" : "universal ”,“颜色”:{“颜色空间”:“srgb”,“组件”:{“红色”:“0xF5”,“阿尔法”:“1.000”,“蓝色”:“0x31”,“绿色”: "0x93" } } } ] }

标签: xcode colors assets


【解决方案1】:

这在单独使用 Xcode 时是不可能的,但可以使用终端命令。

假设,您在资产中定义了一个新的颜色集。如果您打开 Inspector 并选择此集,您可以通过十六进制模式定义颜色:

如果您随后在左侧窗格中选择此颜色并选择“在 Finder 中显示”,则 Finder 将显示一个文件夹,其中包含一个名为 Contents.json 的文件。此文件包含十六进制的 RGB 颜色:

{
  "info" : {
    "version" : 1,
    "author" : "xcode"
  },
  "colors" : [
    {
      "idiom" : "universal",
      "color" : {
        "color-space" : "srgb",
        "components" : {
          "red" : "0x12",
          "alpha" : "1.000",
          "blue" : "0x56",
          "green" : "0x34"
        }
      }
    }
  ]
}

为了找到定义为#1234356 的所有颜色,必须在资产目录中搜索包含以下所有字符串的文件:"red" : "0x12""green" : "0x34""blue" : "0x56"。但是 Xcode 不允许在文件中指定这样的 AND 搜索。

但是,这可以使用终端命令来实现。 This post 显示了许多使用grepawk 命令变体的示例,这些命令使用某种正则表达式来表达文件中的 AND 条件。 this answer 中提到的一个单行代码是:

awk 'NR==FNR{a[$0];next} {for(s in a) if(!index($0,s)) exit 1}' strings RS='^$' file

语法可能有点神秘,但应该可以。

为了找到资产目录中的所有文件,您必须指定此目录作为搜索路径(最简单的方法是从 Finder 将此文件夹绘制到终端命令),并指定递归搜索。

可能需要安装适当的命令,因为并非所有命令都已预先安装。 PS:我自己没试过,祝你好运!

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 2011-10-25
    • 2017-10-01
    • 2014-05-02
    • 2011-01-28
    • 2019-11-28
    • 2019-06-16
    • 2021-03-08
    • 2015-04-12
    相关资源
    最近更新 更多