iOS swift 代码控制十六进制颜色转换扩展

extension UIColor {

    class func hexStringToColor(hexString: String) -> UIColor{

        var cString: String = hexString.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())

        

        if cString.characters.count < 6 {return UIColor.blackColor()}

        if cString.hasPrefix("0X") {cString = cString.substringFromIndex(cString.startIndex.advancedBy(2))}

        if cString.hasPrefix("#") {cString = cString.substringFromIndex(cString.startIndex.advancedBy(1))}

        if cString.characters.count != 6 {return UIColor.blackColor()}

        

        var range: NSRange = NSMakeRange(0, 2)

        

        let rString = (cString as NSString).substringWithRange(range)

        range.location = 2

        let gString = (cString as NSString).substringWithRange(range)

        range.location = 4

        let bString = (cString as NSString).substringWithRange(range)

        

        var r: UInt32 = 0x0

        var g: UInt32 = 0x0

        var b: UInt32 = 0x0

        NSScanner.init(string: rString).scanHexInt(&r)

        NSScanner.init(string: gString).scanHexInt(&g)

        NSScanner.init(string: bString).scanHexInt(&b)

        

        return UIColor(red: CGFloat(r)/255.0, green: CGFloat(g)/255.0, blue: CGFloat(b)/255.0, alpha: CGFloat(1))

        

    }

}

代码直接放进扩展类中就可以用,具体用法例如:

let view = UIView()

view.backgroundColor  = UIColor.hexStringToColor("ffffff")

你可能感兴趣的:(iOS,swift,扩展)