【问题标题】:"Named colors do not work prior to iOS 11.0" error referring to a storyboard“命名颜色在 iOS 11.0 之前不起作用”错误指的是情节提要
【发布时间】:2018-06-09 09:37:42
【问题描述】:

在为低于 iOS 11 的目标开发 iOS 应用程序时,我不小心在我的一个故事板中留下了一个命名颜色。但是,我得到的错误只显示了故事板的名称,而不是导致问题的确切视图:

命名颜色在 iOS 11.0 之前不起作用
Main.storyboard

如何找到具有命名颜色作为属性的确切视图并将其替换为未命名颜色?

【问题讨论】:

    标签: ios interface-builder


    【解决方案1】:
    1. 将故事板作为源代码打开。 (右键单击项目导航器/打开方式/源代码中的情节提要文件

    2. 导航至查找/查找和替换...(或按⌥⌘F)。

    3. 打开右侧的下拉列表,选择正则表达式

    4. 对于搜索词,输入以下正则表达式:

      颜色键=(.*) 名称=.*

      要替换,请输入:

      颜色键=$1 red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>

      这个正则表达式本质上是(.*)捕获color属性的键,然后用$1再次插入它。

      请记住,此示例将颜色替换为白色。通过提供不同的 RGB 值来更改颜色。

    5. 通过导航到第一步中提到的右键菜单中的Open As/Interface Builder - Storyboard切换回Interface Builder。

    【讨论】:

    • 更容易更改展开所有视图(从顶部开始并按向右箭头、向下箭头、向右箭头、向下箭头),然后查找背景颜色或在描述(命名颜色)。然后单击下拉菜单并点击“其他...”并点击圆形颜色预览方块。然后它将用相同的颜色替换您命名的颜色。我觉得奇怪的是,Apple 在 11 之前的 iOS 版本中不支持 IB 中的命名颜色。它没有理由无法工作。
    • @JorisWeimar 是的,这也是一种有效的方法。我建议写一个单独的答案。
    • 我将 key=$1 替换为 key="1" 并且工作了!! TY 颜色键="1" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
    【解决方案2】:

    对于 cordova 项目,我修复了更新 config.xml 来自

    <preference name="deployment-target"            value="10" />
    

    <preference name="deployment-target"            value="12" />
    

    【讨论】:

      【解决方案3】:

      如果您想获得命名颜色的准确浮点值,然后执行查找/替换,以便您可以快速“全部替换”而不是编辑每种颜色。只需在情节提要中搜索“namedColor”,您就会找到通常出现的颜色,例如。

      <namedColor name="Grey Background">
           <color red="0.92941176470588238" green="0.93333333333333335" blue="0.94117647058823528" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
      </namedColor>
      

      然后用搜索词进行查找/替换:

      name="Grey Background"/>
      

      并将以下内容复制粘贴到查找/替换的“With”部分:

      red="0.92941176470588238" green="0.93333333333333335" blue="0.94117647058823528" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
      

      然后点击“全部替换”。不要忘记在搜索词和替换文本的末尾添加“/>”,因为这将确保故事板文档底部的“namedColor”部分中的名称不会被替换。

      这应该会替换故事板中与确切名称匹配的所有颜色。现在只需右键单击情节提要并再次在界面生成器中打开,文件将重新编译,所有颜色看起来仍应相同。

      注意事项:

      1. 始终确保先提交然后推送到存储库,或者至少在对故事板文件的源进行任何更改之前制作其备份副本。
      2. 对所有可能包含指定颜色的 .xib 文件执行相同的过程,否则您的项目将无法编译。
      3. 如果您必须在项目范围内更改颜色,而无需为每个单独的视图更改颜色,您可以使用相同的过程。只需对您在上面粘贴的 RGB 值进行查找/替换,这将允许您在将来为该颜色执行“全部替换”。

      希望这会有所帮助!

      ಠ‿ಠ

      【讨论】:

        【解决方案4】:

        只需在 Target 和 Project 的 Build Settings 中将最小 Deployment Target 设置为 11.0 或更高。它会解决这个问题。

        【讨论】:

          猜你喜欢
          • 2018-06-23
          • 1970-01-01
          • 2018-05-06
          • 2011-12-08
          • 1970-01-01
          • 2015-08-27
          • 1970-01-01
          • 2012-12-05
          • 1970-01-01
          相关资源
          最近更新 更多