How can I create a UIColor from a hex string?

后端 未结 30 1575
北恋
北恋 2020-11-22 16:53

How can I create a UIColor from a hexadecimal string format, such as #00FF00?

30条回答
  •  情话喂你
    2020-11-22 17:21

    Create elegant extension for UIColor:

    extension UIColor {
    
    convenience init(string: String) {
    
            var uppercasedString = string.uppercased()
            uppercasedString.remove(at: string.startIndex)
    
            var rgbValue: UInt32 = 0
            Scanner(string: uppercasedString).scanHexInt32(&rgbValue)
    
            let red = CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0
            let green = CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0
            let blue = CGFloat(rgbValue & 0x0000FF) / 255.0
    
            self.init(red: red, green: green, blue: blue, alpha: 1)
        }
    }
    

    Create red color:

    let red = UIColor(string: "#ff0000") 
    

提交回复
热议问题