我的iOS应用程序创建浅蓝色以用作表格单元格的背景,如下所示:
UIColor *bgColor = [UIColor colorWithRed:0/0.0 green:115/255.0 blue:140/255.0 alpha:1.0];
自iOS 10发布以来,两位用户发送了屏幕截图,显示此颜色呈现为粉红色。我在Photoshop中进行了比较,发现如果将蓝色值更改为0,粉红色就是我用上面的RGB值得到的。所以看来,当我创建颜色时蓝色值会丢失。这似乎与应用程序中的任何其他颜色无关,我对代码进行了比较,并且我以同样的方式创建了其他颜色。
出现问题的设备是iPhone 6s和iPhone SE,两者都比我的最新设备更新。问题不会发生在我的iPhone 6或iPad Air 2上。
奇怪的是,我曾经偶尔在Xcode 7及更早版本的iOS模拟器中看到这种情况,但我忽略了它,因为它看起来像是模拟器的一小部分。现在它并没有在Xcode 8模拟器中发生,但这是我第一次意识到它曾经发生在真实设备上。
我发现在iOS 10中对colorWithRed:green:blue:alpha:方法进行了一些更改,并且通常对颜色渲染进行了一些更改,但我的值并未超出范围。我会向Apple报告一个错误,但与此同时有人可以为此提出解释吗?
答案 0 :(得分:4)
我认为问题在于iOS 10 SDK 1中引入的扩展色彩空间,即颜色分量值不再被限制在[0,1]范围内。 with open(file,"w") as f:
for i in new:
f.write(i+"\n")
f.close()
的红色成分是无穷大或NaN,而不是预期的0/0.0
。