По сути, все, что я хочу сделать, это сравнить 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 )
Какое решение?
CGColorEqualToColor
имеет ту же проблему, что и==
, в том, что он проверяет цветовое пространство, так что это не помогло бы, если бы не было объявлено устаревшим. - person JeremyP   schedule 03.01.2018