将十六进制的颜色字符串转为UIColor

扩展UIColor,将十六进制的颜色字符串转成UIColor对象。

extension UIColor {

    static func colorWithHexString(hex:String) -> UIColor {
        var cString:String = hex.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).uppercaseString

        if cString.hasPrefix("#") {
            let index:String.CharacterView.Index = cString.startIndex.advancedBy(1)
             cString = cString.substringFromIndex(index)
        }

        if cString.characters.count != 6 {
            return UIColor.grayColor()
        }

        //按两位分割字符内容
        let rString = cString.substringToIndex(cString.startIndex.advancedBy(2))
        let gString = cString.substringFromIndex(cString.startIndex.advancedBy(2)).substringToIndex(cString.startIndex.advancedBy(2))
        let bString = cString.substringFromIndex(cString.startIndex.advancedBy(4)).substringToIndex(cString.startIndex.advancedBy(2))

        var r:CUnsignedInt = 0, g:CUnsignedInt = 0, b:CUnsignedInt = 0
        NSScanner(string: rString).scanHexInt(&r)
        NSScanner(string: gString).scanHexInt(&g)
        NSScanner(string: bString).scanHexInt(&b)

        return UIColor(red: CGFloat(r) / 255.0 , green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: 1)
    }
}

现在就可以调用了,

self.view.backgroundColor = UIColor.colorWithHexString("#ffff00")

时间: 2024-08-16 18:37:56

将十六进制的颜色字符串转为UIColor的相关文章

16进制颜色字符串转为UIColor

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

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

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

16进制颜色(html颜色值)字符串转为UIColor

互联网 App 中经常会用到 html 颜色值转换 UIColor,比如:#FF9900.0XFF9900 等颜色字符串,以下方法可以将这些字符串转换为 UIColor 对象. + (UIColor *) colorWithHexString: (NSString *) stringToConvert    {     NSString *cString = [[stringToConvert stringByTrimmingCharactersInSet:[NSCharacterSet whi

[Swift]扩展UIColor:实现十六进制颜色字符串与UIColor之间的相互转换

对[UIColor]进行扩展 1 import UIKit 2 3 extension UIColor { 4 5 // Hex String -> UIColor 6 convenience init(hexString: String) { 7 let hexString = hexString.trimmingCharacters(in: .whitespacesAndNewlines) 8 let scanner = Scanner(string: hexString) 9 10 if

实战c++中的string系列--十六进制的字符串转为十六进制的整型(一般是颜色代码使用)

非常久没有写关于string的博客了.由于写的差点儿相同了.可是近期又与string打交道,于是荷尔蒙上脑,小蝌蚪躁动. 在程序中,假设用到了颜色代码,一般都是十六进制的,即hex. 可是server给你返回一个颜色字符串.即hex string 你怎么把这个hex string 转为 hex,并在你的代码中使用? 更进一步,你怎么办把一个形如"#ffceed"的hex string 转为 RGB呢? 第一个问题在Java中是这样搞的: public static int parseC

IOS中十六进制的颜色转换为UIColor

#pragma mark - 颜色转换 IOS中十六进制的颜色转换为UIColor + (UIColor *) colorWithHexString: (NSString *)color { NSString *cString = [[color stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] uppercaseString]; // String should be 6 or 

css颜色字符串转换, 字符串转化为驼峰形式

* 将 rgb 颜色字符串转换为十六进制的形式,如 rgb(255, 255, 255) 转为 #ffffff1. rgb 中每个 , 后面的空格数量不固定2. 十六进制表达式使用六位小写字母3. 如果输入不符合 rgb 格式,返回原始输入 input: 'rgb(255, 255, 255)' output: #ffffff function rgb2hex(sRGB) { var int2hex = function(n, w) { var m, s = [], c; w = w || 2;

jquery过滤特殊字符及js字符串转为数字

//替换特殊字符 $(this).val($(this).val().replace(/[~'!<>@#$%^&*()-+_=:]/g, "")); 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对String类型调用这些方法,这两个函数才能正确运行:对其他类型返回的都是NaN(Not a Number). 一些示

出自 HTML4 规范的可用颜色字符串值列表

据称由于 HTML5 没有修改专属的颜色,HTML4 的颜色都可以在 HTML5 中正确显示. 出自 HTML4 规范的可用颜色字符串值列表如下,此表来源是 http://www.lovean.com/view-3-132910-0.html , 我把原表中的“石灰色”修改成了“青柠色”,因为这更符合该颜色的原意(原表中把lime翻译成石灰色不知怎么回事).另外原表是图片格式的,不方便拷贝,下表是文本格式的,可以直接拷贝使用. 序号 汉字名称 英语名称 十六进制颜色值 1 黑色 black #0