swift Hex 색상으로 색상 입히기

Posted by Albert 2796Day 16Hour 34Min 54Sec ago [2017-08-23]

//swift 2

func hexStringToUIColor (hex:String) -> UIColor {

        var cString:String = hex.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet() as NSCharacterSet).uppercaseString

        

        if (cString.hasPrefix("'")) {

            cString = cString.substringFromIndex(cString.startIndex.advancedBy(1))

        }

        

        if ((cString.characters.count) != 6) {

            return UIColor.grayColor()

        }

        

        var rgbValue:UInt32 = 0

        NSScanner(string: cString).scanHexInt(&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)

        )

    }


//swift 3

func hexStringToUIColor (hex:String) -> UIColor {
    var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()

    if (cString.hasPrefix("'")) {
        cString.remove(at: cString.startIndex)
    }

    if ((cString.characters.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)
    )
}


사용시 

xxx.backgroundColor  = hexStringToUIColor("'ffffff")





LIST

Copyright © 2014 visionboy.me All Right Reserved.