图形,使用远超预期范围的组件值创建的UIColor

50

我得到了Xcode 8和一个图片文件夹。 我用Photoshop,Pixalate替换了所有带有特定滤镜的图像。

当我运行我的项目时,出现错误:

[Graphics] UIColor创建的组件值远超出预期范围,请在UIColorBreakForOutOfRangeColorComponents上设置断点以进行调试。 此消息仅记录一次。

如何解决这个问题?

5个回答

75
你可能在某个地方有类似这样的东西:
UIColor(red: 255, green: 255, blue: 255, alpha: 1.0)

现在需要像这样进行更改:

UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
SO : UIColor(red: 255/255, green: 255/255, blue: 255/255, alpha: 1.0)

我有UIColor(red: 70/255, green: 40/255, blue: 17/255, alpha: 1.0),那么如何进行编辑? - Done
谢谢您的回答,我设置了错误的代码,像这样:[UIColor colorWithRed:255.0 green:255.0 blue:255.0 alpha:1.0]; - AmyNguyen

59

如您在警告信息中所提到的,您刚刚设置了超出预期范围的值。根据API参考文档,传递给UIColor生成器的每个参数都应该介于0.0和1.0之间。

您可以按照以下步骤找出导致此警告的代码:

步骤1:在断点导航器中添加一个符号断点 添加符号断点

步骤2:将符号断点的符号设置为UIColorBreakForOutOfRangeColorComponents 设置符号断点的符号

步骤3:运行您的应用程序以获取调用堆栈

跟随步骤3的调用堆栈,您将找到导致警告的关键代码。


2
谢谢您!我学到了新东西。这也帮助我调试我的游戏。 - Hedylove
谢谢。这对我很有帮助。 - AmyNguyen
非常感谢!你帮了我很多 :) - Rumpel

20

简短回答:RGB值从0到1。您可能输入的是实际数字。将每个值除以255。

长篇回答:我遇到了这个错误。 我在RGB中查找了一种颜色,这是我的代码:

view.backgroundColor = UIColor(red: 125, green: 125, blue: 125, alpha: 1)

我使用了符号断点技巧来找出哪一行正在发生错误,但我仍然不知道如何修复它。

后来看到另一个答案,我记起了RGB值的范围为0-1。 给出的数字总是除以255

我将代码更改为:

view.backgroundColor = UIColor(red: 125/255, green: 125/255, blue: 125/255, alpha: 1),然后就可以正常工作了。


9

尝试一下这个。对我来说效果很好。

UIColor(red: <Your color>/255.0, green: <Your color>/255.0, blue: <Your color>/255.0, alpha: 1.0)

2
答案:RGB值始终应该在0-1的范围内。您可能输入了直接的数字,需要将RGB颜色值除以255。
例如:
UIColor(displayP3Red: 41/255.0, green: 128/255.0, blue: 185/255.0, alpha: 1.0)

它正在工作中...:)


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