Swift开发 UIColor分类Hex颜色转换
一般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颜色转换相关推荐
- iOS开发-16进制颜色转换
项目中经常会用到颜色转换,有的是通过十六进制转成数字转颜色,想简单的点直接通过字符串转一下,简单扩展了一下分类UIColor,代码如下: +(UIColor *)colorWithHex:(NSStr ...
- [JS] HEX颜色转换成RGBA
写了一个函数,可以把hex格式的颜色转为rgba的格式 实际上不是颜色转换,主要是slice()函数的使用吧,当成字符串理解就好. function change(hex) {if (hex.leng ...
- Hex hsl 转换 php,关于 RGB,HEX,HSL 颜色相互转换
最近一段时间在折腾一个微信在线编辑器的项目,使用 UEditor 进行二次开发. 关于 UEditor 的定制,用到的都太粗浅,官方文档上都能找得到.主题使用的样式表是 ueditor.css 而不是 ...
- js实现颜色转换hex转rgba
js实现颜色转换 一.hex转rgba const hex2Rgba = (bgColor, alpha = 1) => {let color = bgColor.slice(1); // 去掉 ...
- c语言中用rgb改颜色字体,C语言颜色转换宏
C语言颜色转换宏 #define COLOR_BPP16_RGB555 /* Win RGB */ #define COLOR_RGB(r,g,b) ((COLORREF)(((BYTE)(r)|(( ...
- IOS开发Swift——开发小知识(持续更新)
如有错误,请指正!谢谢! 侵权删!(部分转载) 1.PHAsset获取本地视频的url PHCachingImageManager().requestAVAsset(forVideo: asset, ...
- 使用HTML5技术开发的超酷颜色选择器
日期:2012-10-23 来源:GBin1.com 在线演示 本地下载 可能大家见过很多使用jquery/js开发的颜色选择器,今天这里我们将使用HTML5技术来自己实现一个更棒的颜色选择器.希 ...
- php rgb,php颜色转换函数hex-rgb
一个很使用的php颜色转换函数,用于将hex表示的颜色值转换为rgb格式.例如:#dfdfdf转换成(239,239,239) 用法: var_dump(hex2rgb("#efefef&q ...
- 【精品工具】几款好用的在线RGB、HEX颜色代码生成器
介绍几款在线颜色相关的工具,非常好用的,写界面和前端很不错. 在线RGB.HEX颜色代码生成器 RGB颜色编码生成器 - 颜色相关工具 - 脚本之家在线工具RGB颜色编码生成器可以根据RGB值或者HE ...
最新文章
- Ubuntu12.04安装Mac OSX Yosemite
- 树莓派运行python import os未找到命令_通过pip指令在树莓派上基于Python3安装OpenCV...
- 获取界面url_PHP调用百度地图接口,根据IP地址获取地区
- 事务流程java怎么实现_使用队列和事务实现采集数据实例流程
- 【bzoj3994】[SDOI2015]约数个数和 莫比乌斯反演
- oracle中dbms_DBMS中的实例和架构
- Eclipse设置:背景与字体大小和xml文件中字体大小调整
- 最便宜的双模5G手机来了!其它单模5G瞬间无光
- Python使用openpyxl和pandas处理学生成绩Excel文件实用案例
- 使用python中正则表达式匹配linux ifconifg命令中的具体信息
- 处理器管理与进程调度
- INSERT … ON DUPLICATE KEY UPDATE
- 69篇关于微博的研究论文和报告
- [转]打开人际关系大门的三把金钥匙
- Linux C 信号量
- 前馈pid系数_前馈PID控制
- 两台电脑共享一套键盘鼠标的神器
- 【小程序源码】笑话段子手
- 在KVM虚拟机中安装Android-x86模拟器
- CEPH HEALTH错误(二):HEALTH_WARN mds cluster is degraded