swift - 16进制颜色扩展(1.支持# 2.支持不带# , 3支持带0X)

/**
 *  设置16进制颜色:
 *  可识别类型
 *  1:有#
 *  2:没有#
 *  3:含有0X
 */
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);
    }
}

  

原文地址:https://www.cnblogs.com/qingzZ/p/10302038.html

时间: 2024-10-12 05:51:01

swift - 16进制颜色扩展(1.支持# 2.支持不带# , 3支持带0X)的相关文章

随机16进制颜色生成方法

function colorOb() { var arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'];var sum =  "";for (var i = 0; i < 6; i++) {//向上取整,得到进制数var num= Math.ceil(Math.random() * 16);sum += arr[id];var sym =  "#&qu

C# RGB与16进制颜色转换方法

http://www.cnblogs.com/goldarch/archive/2010/08/16/1801053.html #region [颜色:16进制转成RGB]        /// <summary>        /// [颜色:16进制转成RGB]        /// </summary>        /// <param name="strColor">设置16进制颜色 [返回RGB]</param>       

前端笔试题:拍扁多维数组、提取URL中的参数变成对象、实现string的trim()函数、判断Email地址、16进制颜色转rgb格式

(1)拍扁数组 这是一个著名互联网公司今天的前端笔试题:多维数组维数不定,如[2,4,1,[2,3,4,[1,2],5,3],3,8]拍扁为[2,4,1,2,3,4,1,2,5,3,3,8].维数不定,应该要用递归: 答案: function flatten(arr){ var arrLength=arr.length; for(var i=0;i<arrLength;i++){ if(arr[i].constructor==Array){ arr.splice(i,1,flatten(arr[

16进制颜色字符串转为UIColor

//16进制颜色(html颜色值)字符串转为UIColor +(UIColor *) hexStringToColor: (NSString *) stringToConvert { NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; // String should be

16进制颜色与UIColor互转

代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIView *view=[[UIView alloc]initWithFrame:CGRectMake(50, 100, 200, 200)]; view.backgroundColor=[self colorWithHexString:@"e26562&q

16进制颜色代码

Hex Code Color #FFFFFF   #FFFFCC   #FFFF99   #FFFF66   #FFFF33   #FFFF00   #FFCCFF   #FFCCCC   #FFCC99   #FFCC66   #FFCC33   #FFCC00   #FF99FF   #FF99CC   #FF9999   #FF9966   #FF9933   #FF9900   #FF66FF   #FF66CC   #FF6699   #FF6666   #FF6633   #FF66

16进制颜色代码(完全)

当你要给你的网页添加颜色时,有时,你能够直接使用该颜色的名称,但是大多情况下,你只能使用十六进制代码来使用这些颜色.(浏览器能够理解这些代码.) 红色和粉红色,以及它们的16进制代码. #990033 #CC6699 #FF6699 #FF3366 #993366 #CC0066 #CC0033 #FF0066 #FF0033 ..#CC3399.. #FF3399 #FF9999 #FF99CC #FF0099 #CC3366 #FF66CC #FF33CC #FFCCFF #FF99FF #

iOS开发中16进制颜色(html颜色值)字符串转为UIColor

//16进制颜色(html颜色值)字符串转为UIColor +(UIColor *) hexStringToColor: (NSString *) stringToConvert { NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; // String should be

Silverlight中16进制颜色转ARGB及Color转Int32

16进制色字符串转ARGB      做Web的都喜欢用16进制字符串标识颜色,比如"#F5F5F5"这类的,自然这个到了Silverlight/WPF中就要用ARGB表示:"#FFF5F5F5"(前两位标识Alpha,即透明度).这在XAML中没有任何问题,可是如果我们想在代码中设置颜色呢,或者是从XML中读取的相关值呢? 这里提供一个代码片段,帮助我们将16进制字符串转为ARGB色 /// <summary> /// color扩展方法, /// &