ios - convert - uicolor from rgb swift 4
Control deslizante RGB de iOS SDK Interface Builder que produce un color diferente a UIColor con RGB (4)
En el constructor de interfaces cambié el color de un UILabel a esta captura de pantalla, teniendo Rojo 255, Verde 159, Azul 0 y Opacidad al 100%. que da un color naranja.
Cambio programáticamente el color de UILabel que lo cambio al color original usando esto ...
timeLabel.textColor = [UIColor colorWithRed:255.0 green:159.0 blue:0.0 alpha:1.0];
y le da este color ...
Pensé que debería ser lo mismo, ¿alguien sabe lo que estoy haciendo mal? por favor ayuda, gracias.
timeLabel.textColor = [UIColor colorWithRed:255/255.0f green:159.0/255.0f blue:0.0/255.0f alpha:1.0];
EDITAR: Dos años después, esta publicación aún recibe algo de karma y comentarios. Se corrigió mi respuesta anterior a una mejor.
La forma más sensible y reutilizable de agregar una función que puede tomar una entrada entre 0 y 255 para UIColor, es crear una categoría personalizada. Más fácil de leer, más fácil de depurar, más fácil para que otras personas contribuyan, y mantiene el proyecto limpio y estructurado a medida que crece más allá de solo ver controladores de vista. Por lo tanto, agregue los siguientes archivos e impórtelos en sus archivos m donde sea que los necesite
UIColor + Extra.h
@interface UIColor (Extra)
+ (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha
+ (UIColor *) randomColor;
+ (UIColor *) colorWithHex:(uint) hex;
@end
UIColor + Extra.m
#import "UIColor+Extra.h"
@implementation UIColor (Extra)
+ (UIColor *)colorWithR:(uint)red G:(uint)green B:(uint)blue A:(uint) alpha
{
return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/100.f];
}
+ (UIColor *) randomColor
{
CGFloat red = (CGFloat)random()/(CGFloat)RAND_MAX;
CGFloat blue = (CGFloat)random()/(CGFloat)RAND_MAX;
CGFloat green = (CGFloat)random()/(CGFloat)RAND_MAX;
return [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
}
+ (UIColor *) colorWithHex:(uint) hex
{
int red, green, blue, alpha;
blue = hex & 0x000000FF;
green = ((hex & 0x0000FF00) >> 8);
red = ((hex & 0x00FF0000) >> 16);
alpha = ((hex & 0xFF000000) >> 24);
return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.f];
}
@end
Una forma muy fácil de reproducir los colores en la paleta de crayones de Xcode es utilizar este enlace https://github.com/rob-brown/RBCategories/blob/master/UIColor+RBExtras.m
permite colores de crayones como este ... UIColor *ThisColor = [UIColor blueberryCrayonColor];