【问题标题】:Xcode 9.2 stops compiling for < 11.0 target when using named colors使用命名颜色时,Xcode 9.2 停止为 < 11.0 目标编译
【发布时间】:2018-10-24 19:04:03
【问题描述】:

我知道从 11.0 开始支持命名颜色,但我们的项目以 iOS 9.0 为目标,我们能够使用 Xcode 9.0 / 9.1 成功编译它,因为命名颜色仅在情节提要中使用,而不在运行时使用。

切换到 Xcode 9.2 后项目无法编译:

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

【问题讨论】:

  • 同样的问题,有一些解决方法而不修改所有情节提要?
  • 不,很遗憾没有找到更多的想法。可以写给苹果吗?目前仍在使用 XCode 9.1 - 只是不知道它会持续多久

标签: ios xcode


【解决方案1】:

//Please right click on Storyboard

//Alt+CMD+f

现在 ctrl+F 并粘贴。

color key=(.*) name=.* 

现在用这一行替换 find source

<color key=$1 red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>

//MARK:- 或将您的密钥粘贴到密钥中

(<color key="your key")

构建并运行

【讨论】:

    【解决方案2】:

    这是一项较新的功能,因此他们可能在 iOS 11 之前的版本的故事板中停止支持它,尽管您可以通过检查 iOS 11 在代码中使用它并且它工作正常。

    if #available(iOS 11.0, *) {
       view.backgroundColor = UIColor(named:"CustomColor")
    } else {
       // Fallback on earlier versions
       view.backgroundColor = .white
    }
    

    【讨论】:

    • 如果你打算走这条路,那么最好只创建一个名为“Colours”的类并将你的 UIColor 属性添加为静态变量。这样您就可以在一个地方更改颜色,并且您不必在代码中使用 100 条“if #available(iOS 11.0, *)”语句
    • 同意,如果我们支持早期版本,最好将所有颜色放在一个地方。答案是针对想要使用此功能或支持 > iOS 11 的人。*
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多