2017-03-16 114 views
-1

我想從用戶的ID創建一個顏色代碼。我想爲每個用戶分配顏色。如何將任意數量的固定數字(例如10位數字)轉換爲RGB或十六進制顏色代碼?

其實,我有一個開放的聊天功能,任何人都可以聊天。我想爲每個用戶分配一個動態顏色。有什麼方法可以將用戶的ID轉換爲顏色代碼或其他任何方式來實現這一點?

+0

做喲你希望每一個可能的用戶id是一個獨特的顏色,或者只是從一個較小的可能顏色的固定列表中選擇一種顏色? – rmaddy

+0

想讓每個ID都成爲一種獨特的顏色 –

回答

0

我想你應該先定義你的顏色列表。例如1 - > 30種顏色。然後,只需讓用戶id%30將被分配給用戶

+0

這是不可能的,因爲「30」不是固定的。 –

0

給予用戶ID從0到FFFFFF的顏色(0〜16777215) 那麼你可以使用這個宏:

#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]) 

這樣的:

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

邑遺憾的代碼是[Objective-C的]這裏是迅速同:

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

是的,我不好意思提起它,只是更新了答案 –

相關問題