我正在代码库中以两种方式创建颜色:使用颜色文字和sudo npm install ${package_name}
初始化程序。这些颜色看起来相同,但是当我尝试比较它们时,它们的成分略有不同。
要有一个方便的初始化方法来接受整数而不是浮点数,我有一个扩展名:
conda install nomkl
当我尝试测试颜色是否相同时,我的测试失败:
UIColor(red:green:blue:)
答案 0 :(得分:0)
事实证明我的扩展代码有误。 UIColor(red:green:blue:)
接受CGFloat,但这些CGFloat应为64位时代之前的数字。 CGFloat在32位体系结构中以float表示,但在64位体系结构中以double表示。但是,UIColors的组件是32位数字。我修改了扩展程序:
extension UIColor {
convenience init(red: Int, green: Int, blue: Int) {
self.init(red: CGFloat(Float(red)/255.0), green: CGFloat(Float(green)/255.0), blue: CGFloat(Float(blue)/255.0), alpha: 1.0)
}
}
测试通过了。第一个强制类型转换为Float,第二个强制转换为CIFloat初始化接受。