UIColor 비교하기


설명

두개의 UIColor 똑같은지 아닌지 비교 하는 코드 입니다. UITextView는 Placeholder(힌트 텍스트)를 UITextFeild처럼 따로 지원 해주지 않기 때문에 텍스트 색을 비교해서 현재 텍스트가 힌트라는걸 판별 할때 저는 사용합니다.


사용환경

* Swift 4.2
* XCode 10.0

코드

//Objective-C
- (BOOL)color:(UIColor *)color1 isEqualToColor:(UIColor *)color2 withTolerance:(CGFloat)tolerance {
    CGFloat r1, g1, b1, a1, r2, g2, b2, a2;
    [color1 getRed:&r1 green:&g1 blue:&b1 alpha:&a1];
    [color2 getRed:&r2 green:&g2 blue:&b2 alpha:&a2];

    return
    fabs(r1 - r2) <= tolerance &&
    fabs(g1 - g2) <= tolerance &&
    fabs(b1 - b2) <= tolerance &&
    fabs(a1 - a2) <= tolerance;

}

//Swift
func isColor(_ color:UIColor, color2:UIColor, tolerance:CGFloat) -> Bool {
        var r1 : CGFloat = 0, g1 : CGFloat = 0, b1 : CGFloat = 0, a1 : CGFloat = 0
        var r2 : CGFloat = 0, g2 : CGFloat = 0, b2 : CGFloat = 0, a2 : CGFloat = 0

        color.getRed(&r1, green:&g1, blue:&b1, alpha:&a1)
        color2.getRed(&r2, green:&g2, blue:&b2, alpha:&a2)

        return abs(r1-r2) <= tolerance && abs(g1-g2) <= tolerance && abs(b1-b2) <= tolerance && abs(a1-a2) <= tolerance
    }

맞치며

막상 포스팅을 하고나니깐 생각보다 활용을 할만한 곳이 생각이 안 나는거 같습니다,, 궁금하신점이나 틀린점이 있으면 댓글로 남겨주세요 감사합니다 :)



+ Recent posts