Search code examples
iosobjective-crgbnsattributedstringuicolor

How do I create a UIColor from RGBA?


I want to use NSAttributedString in my project, but when I'm trying to set color, which isn't from the standard set (redColor, blackColor, greenColor etc.) UILabel displays these letters in white color. Here is my line of this code.

[attributedString addAttribute:NSForegroundColorAttributeName
                         value:[UIColor colorWithRed:66
                                               green:79
                                                blue:91
                                               alpha:1]
                         range:NSMakeRange(0, attributedString.length)];

I tried to make color with CIColor from Core Image framework, but it showed the same results. What should I change in my code to perform it in right way?

Thx for answers, guys!


Solution

  • Your values are incorrect, you need to divide each color value by 255.0.

    [UIColor colorWithRed:66.0f/255.0f
                    green:79.0f/255.0f
                     blue:91.0f/255.0f
                    alpha:1.0f];
    

    The docs state:

    + (UIColor *)colorWithRed:(CGFloat)red
                        green:(CGFloat)green
                         blue:(CGFloat)blue
                        alpha:(CGFloat)alpha
    

    Parameters

    red The red component of the color object, specified as a value from 0.0 to 1.0.

    green The green component of the color object, specified as a value from 0.0 to 1.0.

    blue The blue component of the color object, specified as a value from 0.0 to 1.0.

    alpha The opacity value of the color object, specified as a value from 0.0 to 1.0.

    Reference here.