Swift 16进制颜色转RGB

由于官方没有给十六进制的颜色使用方法所以自己转一下

  • 使用延展

  • 创建 UIColor+RGBColor.swift

Swift 16进制颜色转RGB_第1张图片
1.png
  • 使用以下代码
import UIKit
extension UIColor{
class func hexadecimalColor(hexadecimal:String)->UIColor{
var cstr = hexadecimal.trimmingCharacters(in:  CharacterSet.whitespacesAndNewlines).uppercased() as NSString;
    if(cstr.length < 6){
        return UIColor.clear;
     }
    if(cstr.hasPrefix("0X")){
        cstr = cstr.substring(from: 2) as NSString
    }
    if(cstr.hasPrefix("#")){
      cstr = cstr.substring(from: 1) as NSString
    }
     if(cstr.length != 6){
      return UIColor.clear;
    }
    var range = NSRange.init()
    range.location = 0
    range.length = 2
    //r
    let rStr = cstr.substring(with: range);
    //g
    range.location = 2;
    let gStr = cstr.substring(with: range)
    //b
    range.location = 4;
    let bStr = cstr.substring(with: range)
    var r :UInt32 = 0x0;
    var g :UInt32 = 0x0;
    var b :UInt32 = 0x0;
    Scanner.init(string: rStr).scanHexInt32(&r);
    Scanner.init(string: gStr).scanHexInt32(&g);
    Scanner.init(string: bStr).scanHexInt32(&b);
    return UIColor.init(red: CGFloat(r)/255.0, green: CGFloat(g)/255.0, blue: CGFloat(b)/255.0, alpha: 1);
  }
}
  • 之后就可以愉快的使用了:
let color = UIColor.hexadecimalColor(hexadecimal: "#778ef2");

你可能感兴趣的:(Swift 16进制颜色转RGB)