【发布时间】:2018-06-13 09:15:23
【问题描述】:
基本上我想做的就是将layer.fillColor 与CGColor 与UIColor.black.cgColor 进行比较。
函数 CGColorEqualToColor 现已在 Swift 4 中弃用。
我试过了:
if(layer.fillColor === UIColor.black.cgColor){
return
}
它仍然不起作用。我猜他们必须有相同的 kCGColorSpaceModel。
这是日志中每种颜色的输出
<CGColor 0x1c02a15c0> [<CGColorSpace 0x1c02a0a20> (kCGColorSpaceICCBased; kCGColorSpaceModelRGB; sRGB IEC61966-2.1; extended range)] ( 0 0 0 1 )
<CGColor 0x1c008e290> [<CGColorSpace 0x1c02a0f60> (kCGColorSpaceICCBased; kCGColorSpaceModelMonochrome; Generic Gray Gamma 2.2 Profile; extended range)] ( 0 1 )
解决办法是什么?
【问题讨论】:
-
实现color difference measure。如果你把自己限制在 RGB 或 sRGB,那很简单
-
CGColorEqualToColor与==存在相同的问题,因为它会检查色彩空间,因此如果不弃用它也无济于事。
标签: ios swift calayer swift4 cgcolor