Question

J'ai dans une base de données quelques lignes où un champ est une valeur argb pour la couleur associée.

Je dois lire toutes les lignes de ces tableaux et convertir la décimale de la valeur Argb en un uicolor.

J'ai googlé en trouvant cela, mais je ne l'ai pas fait.

Existe-t-il un moyen d'approcher cela?

Merci.

Était-ce utile?

La solution

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

Il vous suffit de diviser les valeurs RVB de 255 pour que les choses soient correctement configurées.

Autres conseils

Voici la méthode que j'ai proposée pour convertir un entier Argb en une couleur d'interface utilisateur. L'a testé sur plusieurs couleurs que nous avons dans notre système .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];
}

Vous pouvez définir une macro et l'utiliser tout au long de votre code

#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]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top