How can I create a UIColor from a hex string?

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

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

30条回答
  •  独厮守ぢ
    2020-11-22 17:31

    swift version. Use as a Function or an Extension.

    Function
      func UIColorFromRGB(colorCode: String, alpha: Float = 1.0) -> UIColor{
        var scanner = NSScanner(string:colorCode)
        var color:UInt32 = 0;
        scanner.scanHexInt(&color)
        
        let mask = 0x000000FF
        let r = CGFloat(Float(Int(color >> 16) & mask)/255.0)
        let g = CGFloat(Float(Int(color >> 8) & mask)/255.0)
        let b = CGFloat(Float(Int(color) & mask)/255.0)
        
        return UIColor(red: r, green: g, blue: b, alpha: CGFloat(alpha))
    }
    
    Extension
    extension UIColor {
        convenience init(colorCode: String, alpha: Float = 1.0){
            var scanner = NSScanner(string:colorCode)
            var color:UInt32 = 0;
            scanner.scanHexInt(&color)
            
            let mask = 0x000000FF
            let r = CGFloat(Float(Int(color >> 16) & mask)/255.0)
            let g = CGFloat(Float(Int(color >> 8) & mask)/255.0)
            let b = CGFloat(Float(Int(color) & mask)/255.0)
            
            self.init(red: r, green: g, blue: b, alpha: CGFloat(alpha))
        }
    }
    
    How to call
    let hexColorFromFunction = UIColorFromRGB("F4C124", alpha: 1.0)
    let hexColorFromExtension = UIColor(colorCode: "F4C124", alpha: 1.0)
    
    You can also define your Hex Color from interface builder.

提交回复
热议问题