Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to initialize UIColor from RGB values properly?

I am working on an iPhone application which uses various colors. When user selects the particular color button I set drawing color accordingly. I am getting the color for some but in the most of the cases I am getting white color.

Here is my code:

-(IBAction)colorSelected:(UIButton *)sender {  switch (sender.tag)  {     case 1:         self.drawcolor= [UIColor colorWithRed:200 green:191 blue:231 alpha:1];         break;                 case 2:         self.drawcolor= [UIColor colorWithRed:163 green:73 blue:164 alpha:1];         break;       case 3:         self.drawcolor= [UIColor colorWithRed:112 green:146 blue:76 alpha:1];         break;       case 4:         self.drawcolor= [UIColor colorWithRed:63 green:72 blue:204 alpha:1];         break;       case 5:         self.drawcolor= [UIColor colorWithRed:153 green:217 blue:234 alpha:1];         break;       case 6:         self.drawcolor= [UIColor colorWithRed:0 green:162 blue:232 alpha:1];         break;               case 7:         self.drawcolor= [UIColor colorWithRed:181 green:230 blue:29 alpha:1];         break;       case 8:         self.drawcolor= [UIColor colorWithRed:34 green:177 blue:76 alpha:1];         break;               case 9:         self.drawcolor= [UIColor colorWithRed:239 green:228 blue:176 alpha:1];         break;               case 10:         self.drawcolor= [UIColor colorWithRed:255 green:201 blue:0 alpha:1];         break;               case 11:         self.drawcolor= [UIColor colorWithRed:255 green:201 blue:14 alpha:1];         break;               case 12:         self.drawcolor= [UIColor colorWithRed:237 green:28 blue:36 alpha:1];         break;               case 13:         self.drawcolor= [UIColor colorWithRed:255 green:127 blue:39 alpha:1];         break;               case 14:         self.drawcolor= [UIColor colorWithRed:255 green:174 blue:201 alpha:1];         break;               case 15:         self.drawcolor= [UIColor colorWithRed:185 green:122 blue:87 alpha:1];         break;               case 16:         self.drawcolor= [UIColor colorWithRed:136 green:0 blue:21 alpha:1];         break;               case 17:         self.drawcolor= [UIColor colorWithRed:195 green:195 blue:195 alpha:1];         break;               case 18:         self.drawcolor= [UIColor colorWithRed:127 green:127 blue:127 alpha:1];         break;               case 19:         self.drawcolor= [UIColor colorWithRed:255 green:255 blue:255 alpha:1];         break;     case 20:         self.drawcolor= [UIColor colorWithRed:0 green:0 blue:0 alpha:1];         break;       default:         break; }  self.preColor=self.drawcolor; self.lineWidth=self.prelineWidth; } 

Can any one tell me what I am doing wrong ? Sumit

like image 819
slonkar Avatar asked Nov 05 '11 22:11

slonkar


People also ask

How do I set RGB color?

First, choose the color you want changed in the browser. Then move the red, green, and blue sliders until you get the desired color. There are a few additional buttons to help you do this. The white button makes the color white (red = blue = green = 1.0) and the black color makes it black (red = blue = green = 0.0).

How do I add RGB color in Swift?

Just add the property ColorLiteral as shown in the example, Xcode will prompt you with a whole list of colors which you can choose. The advantage of doing so is lesser code, add HEX values or RGB. You will also get the recently used colors from the storyboard. this is Amazing !

When all RGB values 0 is it created?

The color is expressed as an RGB triplet (r,g,b), each component of which can vary from zero to a defined maximum value. If all the components are at zero the result is black; if all are at maximum, the result is the brightest representable white.

How do you convert Heicolor to hex?

To convert a UIColor instance to a hex value, we define a convenience method, toHex(alpha:) . The method accepts one parameter of type Bool , which indicates whether the alpha value should be included in the string that is returned from the method.


2 Answers

The values are in the 0.0 to 1.0 range.

E.g. divide by 255., but remember the decimal dot so you get floating point division and not integer division.

Like

selectedColor = [UIColor colorWithRed:14.0/255.0 green:114.0/255.0 blue:199.0/255.0 alpha:1]; 
like image 105
Mats Avatar answered Oct 27 '22 20:10

Mats


Pragmatic approach with Swift.

extension UIColor {     convenience init(rgbColorCodeRed red: Int, green: Int, blue: Int, alpha: CGFloat) {       let redPart: CGFloat = CGFloat(red) / 255      let greenPart: CGFloat = CGFloat(green) / 255      let bluePart: CGFloat = CGFloat(blue) / 255       self.init(red: redPart, green: greenPart, blue: bluePart, alpha: alpha)     } } 
like image 23
user3378170 Avatar answered Oct 27 '22 18:10

user3378170