一般UI同事们给的颜色值都是16进制的,但是在iOS的UIColor中,没有直接通过Hex值进行设置颜色的接口,所以自己编写了一个接口。

  func colorWithHexString (hex:String)-> UIColor {var hexString = hexif (hexString.hasPrefix("#")) {hexString = (hexString as NSString).substringFromIndex(1)}let index = hexString.startIndex.advancedBy(2)let index2 = hexString.startIndex.advancedBy(4)let range = Range(index ..< index2)let s1:String = hexString.substringToIndex(index)let s2:String = hexString.substringWithRange(range)let s3 = hexString.substringFromIndex(index2)return UIColor(red:CGFloat(hex2dec(s1))/255.0, green:CGFloat(hex2dec(s2)) / 255.0, blue:CGFloat(hex2dec(s3)) / 255.0, alpha:1)}func hex2dec(num:String) -> Float {let str = num.uppercaseStringvar sum:Float = 0for i in str.utf8 {sum = sum * 16 + Float(i) - 48 // 0-9 从48开始if i >= 65 {                 // A-Z 从65开始,但有初始值10,所以应该是减去55sum -= 7}}return sum}

Swift的Range十分的难用,不知道苹果为啥要把以前的NSRange修改到现在这么烂。。。。。。。。。

可以将上边的方法放到UIColor类扩展里:

extension UIColor {class func colorWithHexStringSw (hex:String)-> UIColor {func hex2dec(num:String) -> Float {let str = num.uppercaseStringvar sum:Float = 0for i in str.utf8 {sum = sum * 16 + Float(i) - 48 // 0-9 从48开始if i >= 65 {                 // A-Z 从65开始,但有初始值10,所以应该是减去55sum -= 7}}return sum}var hexString = hexif (hexString.hasPrefix("#")) {hexString = (hexString as NSString).substringFromIndex(1)}let index = hexString.startIndex.advancedBy(2)let index2 = hexString.startIndex.advancedBy(4)let range = Range(index ..< index2)let s1:String = hexString.substringToIndex(index)let s2:String = hexString.substringWithRange(range)let s3 = hexString.substringFromIndex(index2)return UIColor(red:CGFloat(hex2dec(s1))/255.0, green:CGFloat(hex2dec(s2)) / 255.0, blue:CGFloat(hex2dec(s3)) / 255.0, alpha:1)}
}

然后就可以直接调用了:

let color = UIColor.colorWithHexStringSw("#f4f4f4")这样就可以再整个工程里随便调用UIColor这个类型方法了~!

Swift开发 UIColor分类Hex颜色转换相关推荐

  1. iOS开发-16进制颜色转换

    项目中经常会用到颜色转换,有的是通过十六进制转成数字转颜色,想简单的点直接通过字符串转一下,简单扩展了一下分类UIColor,代码如下: +(UIColor *)colorWithHex:(NSStr ...

  2. [JS] HEX颜色转换成RGBA

    写了一个函数,可以把hex格式的颜色转为rgba的格式 实际上不是颜色转换,主要是slice()函数的使用吧,当成字符串理解就好. function change(hex) {if (hex.leng ...

  3. Hex hsl 转换 php,关于 RGB,HEX,HSL 颜色相互转换

    最近一段时间在折腾一个微信在线编辑器的项目,使用 UEditor 进行二次开发. 关于 UEditor 的定制,用到的都太粗浅,官方文档上都能找得到.主题使用的样式表是 ueditor.css 而不是 ...

  4. js实现颜色转换hex转rgba

    js实现颜色转换 一.hex转rgba const hex2Rgba = (bgColor, alpha = 1) => {let color = bgColor.slice(1); // 去掉 ...

  5. c语言中用rgb改颜色字体,C语言颜色转换宏

    C语言颜色转换宏 #define COLOR_BPP16_RGB555 /* Win RGB */ #define COLOR_RGB(r,g,b) ((COLORREF)(((BYTE)(r)|(( ...

  6. IOS开发Swift——开发小知识(持续更新)

    如有错误,请指正!谢谢! 侵权删!(部分转载) 1.PHAsset获取本地视频的url PHCachingImageManager().requestAVAsset(forVideo: asset, ...

  7. 使用HTML5技术开发的超酷颜色选择器

    日期:2012-10-23  来源:GBin1.com 在线演示  本地下载 可能大家见过很多使用jquery/js开发的颜色选择器,今天这里我们将使用HTML5技术来自己实现一个更棒的颜色选择器.希 ...

  8. php rgb,php颜色转换函数hex-rgb

    一个很使用的php颜色转换函数,用于将hex表示的颜色值转换为rgb格式.例如:#dfdfdf转换成(239,239,239) 用法: var_dump(hex2rgb("#efefef&q ...

  9. 【精品工具】几款好用的在线RGB、HEX颜色代码生成器

    介绍几款在线颜色相关的工具,非常好用的,写界面和前端很不错. 在线RGB.HEX颜色代码生成器 RGB颜色编码生成器 - 颜色相关工具 - 脚本之家在线工具RGB颜色编码生成器可以根据RGB值或者HE ...

最新文章

  1. Ubuntu12.04安装Mac OSX Yosemite
  2. 树莓派运行python import os未找到命令_通过pip指令在树莓派上基于Python3安装OpenCV...
  3. 获取界面url_PHP调用百度地图接口,根据IP地址获取地区
  4. 事务流程java怎么实现_使用队列和事务实现采集数据实例流程
  5. 【bzoj3994】[SDOI2015]约数个数和 莫比乌斯反演
  6. oracle中dbms_DBMS中的实例和架构
  7. Eclipse设置:背景与字体大小和xml文件中字体大小调整
  8. 最便宜的双模5G手机来了!其它单模5G瞬间无光
  9. Python使用openpyxl和pandas处理学生成绩Excel文件实用案例
  10. 使用python中正则表达式匹配linux ifconifg命令中的具体信息
  11. 处理器管理与进程调度
  12. INSERT … ON DUPLICATE KEY UPDATE
  13. 69篇关于微博的研究论文和报告
  14. [转]打开人际关系大门的三把金钥匙
  15. Linux C 信号量
  16. 前馈pid系数_前馈PID控制
  17. 两台电脑共享一套键盘鼠标的神器
  18. 【小程序源码】笑话段子手
  19. 在KVM虚拟机中安装Android-x86模拟器
  20. CEPH HEALTH错误(二):HEALTH_WARN mds cluster is degraded

热门文章

  1. 干货分享 | 用Pyecharts绘制20钟不同风格的炫酷交互式图表,建议收藏
  2. Windows与USB的通信
  3. PHP安全之道学习笔记
  4. 关于win11 碍眼的主文件夹的有效删除办法
  5. 一文学会 Spring MVC 表单标签
  6. 数字图像处理(入门篇)十四 透视变换
  7. 补丁31305087
  8. Lab颜色空间及其应用
  9. java字符串 与 ASCII码相互转换
  10. Oracle中的序列,同义词