如何使用哈希值显示图像视图背景颜色

时间:2011-03-04 05:53:32

标签: iphone

如何使用哈希值显示图像视图背景颜色。

我需要使用#028002放置图像视图背景颜色。

任何人都可以帮助我,

提前感谢你。

4 个答案:

答案 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)
    )
}