2011-11-05 13 views
59

Estoy trabajando en una aplicación para iPhone que usa varios colores. Cuando el usuario selecciona el botón de color en particular, configuro el color de dibujo en consecuencia. Estoy obteniendo el color para algunos, pero en la mayoría de los casos obtengo un color blanco.¿Cómo inicializar UIColor de los valores RGB correctamente?

Aquí está mi código:

-(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; 
} 

¿Puede alguien decirme lo que estoy haciendo mal? Sumit

+1

yo nos topamos con una utilidad http://colorcode.globalmaverick.com/ da u Objecive-c y el código utilizable rápida directamente desde el código de color hexadecimal o RGB. – amar

Respuesta

184

Los valores están en el rango 0.0 a 1.0.

E.g. divida por 255., pero recuerde el punto decimal para obtener división de coma flotante y no división de enteros.

Al igual

selectedColor = [UIColor colorWithRed:14.0/255.0 green:114.0/255.0 blue:199.0/255.0 alpha:1]; 
+19

Para ampliar la respuesta de Mats, aquí está con un ejemplo: self.drawcolor = [UIColor colorWithRed: 14.0/255.0 verde: 114.0/255.0 azul: 199.0/255.0 alfa: 1]; – Flea

6

Tienes varias opciones

Código

CGFloat red = 16.0; 
CGFloat green = 97.0; 
CGFloat blue = 5.0; 
CGFloat alpha = 255.0; 
UIColor *color = [UIColor colorWithRed:(red/255.0) green:(green/255.0) blue:(blue/255.0) alpha:(alpha/255.0)]; 

color plug-in para el selector de Interface Builder

Hay un n selector de color hielo de pánico que funciona bien con IB: http://panic.com/~wade/picker/

Xcode complemento

Ésta le proporciona una interfaz gráfica para la elección de colores: http://www.youtube.com/watch?v=eblRfDQM0Go

vainas y bibliotecas

Hay una buena vaina llamada MPColorTools: https://github.com/marzapower/MPColorTools

10

Pr enfoque agresivo con 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) 

    } 
} 
1

Aquí es un método que puede convertirse fácilmente en una categoría en UIColor que le permitirá especificar un color basado en los valores RGBA de 0 - 255.

+ (UIColor *)colorFromRGBAWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha { 
    return [UIColor colorWithRed:red/255.0 green:green/255.0 blue:blue/255.0 alpha:alpha/255.0]; 
} 

Si usted lo hace una extensión de categoría UIColor, se puede usar como tal:

UIColor *myAwesomeColor = [UIColor colorFromRGBAWithRed:48 green:119 blue:167 alpha:255]; 
1

En Swift puede configurar fácilmente su color de fondo, por ejemplo, de una célula de la siguiente manera:

cell.backgroundColor = UIColor.init(red: 14.0/255.0, green: 114.0/255.0, blue: 199.0/255.0, alpha: 1)

:-)

0
(ContentView.Layer.BorderColor) //CG Object 
    = UIColor.LightGray.CGColor; 
+1

Por favor edite con más información. Se desalientan las respuestas de solo código y "prueba esto", ya que no contienen contenido que se pueda buscar y no explican por qué alguien debe "probar esto". – abarisone

Cuestiones relacionadas