Pregunta

He en una base de datos unas pocas filas donde un campo es un valor ARGB para el color relacionado.

Tengo que leer todas las filas de estas tablas y convertir el valor de ARGB decimal a un Uicolor.

He encontrado con Google Encontrando esto, pero no lo hice.

¿Hay alguna forma de abordar esto?

gracias.

¿Fue útil?

Solución

text.color = [UIColor colorWithRed:10.0/255.0 green:100.0/255.0 blue:55.0/255.0 alpha:1];

Solo necesita dividir los valores de RGB en 255 para que las cosas se configuren correctamente.

Otros consejos

Aquí está el método con el que se me ocurrió convertir un entero ARGB en un color UI.Lo probé en varios colores que tenemos en nuestro Sistema .NET

+(UIColor *)colorFromARGB:(int)argb {
    int blue = argb & 0xff;
    int green = argb >> 8 & 0xff;
    int red = argb >> 16 & 0xff;
    int alpha = argb >> 24 & 0xff;

    return [UIColor colorWithRed:red/255.f green:green/255.f blue:blue/255.f alpha:alpha/255.f];
}

Puede definir una macro y usarla a lo largo de su código

#define UIColorFromARGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \
blue:((float)(rgbValue & 0xFF))/255.0 alpha:((float)((rgbValue & 0xFF000000) >> 24))/255.0]

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top