如何使用哈希值显示图像视图背景颜色。
我需要使用#028002放置图像视图背景颜色。
任何人都可以帮助我,
提前感谢你。
答案 0 :(得分:5)
我使用了下一个UIColor类别:
@implementation UIColor(Tools)
+ (UIColor *)colorWithHex:(NSInteger)hex alpha:(CGFloat)alpha {
return [UIColor colorWithRed:((float)((hex & 0xFF0000) >> 16))/255.0 green:((float)((hex & 0xFF00) >> 8))/255.0 blue:((float)(hex & 0xFF))/255.0 alpha:alpha];
}
@end
// Example of Usage:
// backgroundView.backgroundColor = [UIColor colorWithHex:0xe1e1e1 alpha:1.0];
此处无需解析字符串。
答案 1 :(得分:2)
UIColor不直接支持十六进制值。你需要自己转换它。像这样:
CGFloat r = (CGFloat)0x02 / 0xFF; CGFloat g = (CGFloat)0x80 / 0xFF; CGFloat b = (CGFloat)0x02 / 0xFF; [UIColor colorWithRed:r green:g blue:b alpha:1.0]
答案 2 :(得分:0)
如果您想将哈希值转换为UIColor
,这可能会对您有所帮助
http://imthi.com/blog/programming/iphone-sdk-convert-hex-color-string-to-uicolor.php
答案 3 :(得分:0)
您可以迅速使用以下方法
func hexStringToUIColor(hex:String)-> UIColor {
var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()
if (cString.hasPrefix("#")) {
cString.remove(at: cString.startIndex)
}
if ((cString.count) != 6) {
return UIColor.gray
}
var rgbValue:UInt32 = 0
Scanner(string: cString).scanHexInt32(&rgbValue)
return UIColor(
red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
alpha: CGFloat(1.0)
)
}