为了账号安全,请及时绑定邮箱和手机立即绑定

请问老师在swift 语言中怎样直接使用16进制的色值

请问老师在swift 语言中怎样直接使用16进制的色值

正在回答

5 回答

func UIColorFromRGB (hex:String) -> UIColor {

        var cString:String = hex.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).uppercaseString

        

        if (cString.hasPrefix("#")) {

            cString = (cString as NSString).substringFromIndex(1)

        }

        let rString = (cString as NSString).substringToIndex(2)

        let gString = ((cString as NSString).substringFromIndex(2) as NSString).substringToIndex(2)

        let bString = ((cString as NSString).substringFromIndex(4) as NSString).substringToIndex(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: CGFloat(1))

    }


eg:

self.setTitleColor(UIColorFromRGB("0xec8c00"), forState: .Selected)


0 回复 有任何疑惑可以回复我~
#1

恩格贝 提问者

非常感谢!
2016-04-27 回复 有任何疑惑可以回复我~

已用粗体标出。

0 回复 有任何疑惑可以回复我~

func UIColorFromRGB (hex:String) -> UIColor {       
        var cString:String = hex.trimmingCharacters(in: NSCharacterSet.whitespacesAndNewlines)
        if (cString.hasPrefix("#")) {        
            cString = (cString as NSString).substring(from: 1)
        }    
        let rString = (cString as NSString).substring(to: 2)
        let gString = ((cString as NSString).substring(from: 2) as NSString).substring(to: 2)
        let bString = ((cString as NSString).substring(from: 4) as NSString).substring(to: 2)
        var r:CUnsignedInt = 0, g:CUnsignedInt = 0, b:CUnsignedInt = 0;
        Scanner(string: rString).scanHexInt32(&r)
        Scanner(string: gString).scanHexInt32(&g)
        Scanner(string: bString).scanHexInt32(&b)
        return UIColor(red: CGFloat(r) / 255.0, green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: CGFloat(1)) 
    }
这些需要改动的。

0 回复 有任何疑惑可以回复我~

亲测,可以使用谢谢!不过swift3的语法略微有些变化,需要稍微修改下。

0 回复 有任何疑惑可以回复我~

这个还需要转换成UIColor里面三色才能使用

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问老师在swift 语言中怎样直接使用16进制的色值

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信