2017-03-16 1 views
-1

Je souhaite créer un code de couleur à partir de l'ID de l'utilisateur. Je veux attribuer une couleur à chaque utilisateur.Comment convertir n'importe quel nombre de chiffres fixes (par exemple 10 chiffres) en code couleur RVB ou Hex?

En fait, j'ai une fonctionnalité de discussion ouverte où tout le monde peut discuter. Et je veux attribuer une couleur dynamique à chaque utilisateur. Y at-il un moyen de convertir les utilisateurs en code de couleur ou de toute autre manière pour y parvenir?

+0

Do yo Voulez-vous que chaque ID utilisateur soit une couleur unique ou que vous choisissiez simplement une couleur parmi une liste fixe plus petite de couleurs possibles? – rmaddy

+0

Vous voulez que chaque id soit une couleur unique –

Répondre

0

Je pense que vous devriez d'abord définir votre liste de couleurs. 1 -> 30 couleurs par exemple. Ensuite, il suffit obtenir userId% 30 pour la couleur qui sera assigner à l'utilisateur

+0

Ce n'est pas possible car "30" n'est pas fixé. –

0

donner l'ID utilisateur de 0 à FFFFFF (0-16777215) vous pouvez alors utiliser cette macro:

#define UIColorFromHEX(rgbValue) ([UIColor colorWithRed:((float) ((rgbValue & 0xFF0000) >> 16))/255.0 \ 
                green:((float) ((rgbValue & 0x00FF00) >> 8))/255.0 \ 
                blue:((float) ((rgbValue & 0x0000FF) >> 0))/255.0 \ 
                alpha:1.0]) 

comme ceci:

UIColor *color = UIColorFromHEX(13094098) //or 0xC7CCD2 

Yap désolé que le code ci-dessus est ici [objective-c] est la même dans rapide:

convenience init(red: Int, green: Int, blue: Int) { 
     assert(red >= 0 && red <= 255, "Invalid red component") 
     assert(green >= 0 && green <= 255, "Invalid green component") 
     assert(blue >= 0 && blue <= 255, "Invalid blue component") 

     self.init(red: CGFloat(red)/255.0, green: CGFloat(green)/255.0, blue: CGFloat(blue)/255.0, alpha: 1.0) 
    } 

    convenience init(netHex:Int) { 
     self.init(red:(netHex >> 16) & 0xff, green:(netHex >> 8) & 0xff, blue:netHex & 0xff) 
    } 
+1

oui mon mauvais merci de le mentionner, juste mis à jour la réponse –