UIColor не определяет isEqual, isEqual наследуется от NSObject. Таким образом, isEqual сравнивает адреса цветов и потерпит неудачу.
CGColor имеет функцию сравнения CGColorEqualToColor()
:
CGColor *c = myColor.CGColor;
Тогда можно сравнить цвета CGColor:
bool colorsEqual = CGColorEqualToColor(myColor1.CGColor, myColor2.CGColor);
Или получите отдельные компоненты двух цветов и сравните их по отдельности, используя
- (BOOL)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha