UIColor之扩展Swift

extension UIColor { 
    convenience init(bd_hexColor hexValue: String) { 
    var red: CGFloat = 0.0 
    var green: CGFloat = 0.0 
    var blue: CGFloat = 0.0 
    var alpha: CGFloat = 1.0

        var hexColorString = hexValue;

        if !hexColorString.hasPrefix("#"){
            hexColorString = "#"+hexValue;
        }

        let index   = hexColorString.startIndex.advancedBy(1)
        let hex     = hexColorString.substringFromIndex(index)
        let scanner = NSScanner(string: hex)
        var hexValue: CUnsignedLongLong = 0
        if scanner.scanHexLongLong(&hexValue) {
            switch (hex.characters.count) {
            case 3:
                red   = CGFloat((hexValue & 0xF00) >> 8)       / 15.0
                green = CGFloat((hexValue & 0x0F0) >> 4)       / 15.0
                blue  = CGFloat(hexValue & 0x00F)              / 15.0
            case 4:
                red   = CGFloat((hexValue & 0xF000) >> 12)     / 15.0
                green = CGFloat((hexValue & 0x0F00) >> 8)      / 15.0
                blue  = CGFloat((hexValue & 0x00F0) >> 4)      / 15.0
                alpha = CGFloat(hexValue & 0x000F)             / 15.0
            case 6:
                red   = CGFloat((hexValue & 0xFF0000) >> 16)   / 255.0
                green = CGFloat((hexValue & 0x00FF00) >> 8)    / 255.0
                blue  = CGFloat(hexValue & 0x0000FF)           / 255.0
            case 8:
                red   = CGFloat((hexValue & 0xFF000000) >> 24) / 255.0
                green = CGFloat((hexValue & 0x00FF0000) >> 16) / 255.0
                blue  = CGFloat((hexValue & 0x0000FF00) >> 8)  / 255.0
                alpha = CGFloat(hexValue & 0x000000FF)         / 255.0
            default:
                BMLog("Invalid RGB string, number of characters after '#' should be either 3, 4, 6 or 8")
            }
        } else {
            BMLog("Scan hex error")
        }
        self.init(red:red, green:green, blue:blue, alpha:alpha)
    }
}

原文地址: http://blog.csdn.net/pjk1129/article/details/50462036

你可能感兴趣的:(iOS开发技术系列)