Xcode 9.2在使用命名颜色时停止编译 < 11.0目标。

6

我知道从11.0开始支持命名颜色,但我们的项目针对的是iOS 9.0,并且我们可以使用Xcode 9.0 / 9.1成功编译它,因为命名颜色仅在storyboard中使用而不在运行时使用。

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

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


这里也有同样的问题,有没有不需要修改所有故事板的解决方法? - fdlr
不好意思,没有找到更多的想法。也许可以写信给苹果公司? 目前仍在使用XCode 9.1 - 只是不知道它能持续多久。 - Arnie Schwarzvogel
2个回答

4

enter image description here

//Please right click on Storyboard

enter image description here

//Alt+CMD+f

在此输入图像描述

在此输入图像描述

现在按下ctrl+F并粘贴。

color key=(.*) name=.* 

现在用这行代码替换查找源代码:

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

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

(<color key="your key")

构建和运行


0

这是一个较新的功能,因此他们可能已经停止支持在iOS 11之前的版本中使用storyboard,但是您可以通过进行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, *)”语句。 - Nick Kirsten
同意,如果我们要支持早期版本,最好将所有颜色放在一个地方。这个答案是给那些想要使用这个功能或支持iOS 11.*以上版本的人。 - Suhit Patil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接