我想從用戶的ID創建一個顏色代碼。我想爲每個用戶分配顏色。如何將任意數量的固定數字(例如10位數字)轉換爲RGB或十六進制顏色代碼?
其實,我有一個開放的聊天功能,任何人都可以聊天。我想爲每個用戶分配一個動態顏色。有什麼方法可以將用戶的ID轉換爲顏色代碼或其他任何方式來實現這一點?
我想從用戶的ID創建一個顏色代碼。我想爲每個用戶分配顏色。如何將任意數量的固定數字(例如10位數字)轉換爲RGB或十六進制顏色代碼?
其實,我有一個開放的聊天功能,任何人都可以聊天。我想爲每個用戶分配一個動態顏色。有什麼方法可以將用戶的ID轉換爲顏色代碼或其他任何方式來實現這一點?
我想你應該先定義你的顏色列表。例如1 - > 30種顏色。然後,只需讓用戶id%30將被分配給用戶
這是不可能的,因爲「30」不是固定的。 –
給予用戶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)
}
是的,我不好意思提起它,只是更新了答案 –
做喲你希望每一個可能的用戶id是一個獨特的顏色,或者只是從一個較小的可能顏色的固定列表中選擇一種顏色? – rmaddy
想讓每個ID都成爲一種獨特的顏色 –