Swift3.0对UIColor进行方法扩展
2017-03-11 13:03
429 查看
Swift 3.0 XCode 8.0
总是感觉IOS里面颜色的调用好麻烦,每次都要转成10进制,稍微封装一下。后面用起来方便多了
总是感觉IOS里面颜色的调用好麻烦,每次都要转成10进制,稍微封装一下。后面用起来方便多了
/// 获取颜色的方法 extension UIColor { /** 获取颜色,通过16进制色值字符串,e.g. #ff0000, ff0000 - parameter hexString : 16进制字符串 - parameter alpha : 透明度,默认为1,不透明 - returns: RGB */ static func withHex(hexString hex: String, alpha:CGFloat = 1) -> UIColor { // 去除空格等 var cString: String = hex.trimmingCharacters(in: NSCharacterSet.whitespacesAndNewlines).uppercased() // 去除# if (cString.hasPrefix("#")) { cString = (cString as NSString).substring(from: 1) } // 必须为6位 if (cString.characters.count != 6) { return UIColor.gray } // 红色的色值 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: alpha) } /** 获取颜色,通过16进制数值 - parameter hexInt : 16进制数值 - parameter alpha : 透明度 - returns : 颜色 */ static func withHex(hexInt hex:Int32, alpha:CGFloat = 1) -> UIColor { let r = CGFloat((hex & 0xff0000) >> 16) / 255 let g = CGFloat((hex & 0xff00) >> 8) / 255 let b = CGFloat(hex & 0xff) / 255 return UIColor(red: r, green: g, blue: b, alpha: alpha) } /** 获取颜色,通过rgb - parameter red : 红色 - parameter green : 绿色 - parameter blue : 蓝色 - returns : 颜色 */ static func withRGB(_ red:CGFloat, _ green:CGFloat, _ blue:CGFloat) -> UIColor { return UIColor.withRGBA(red, green, blue, 1) } /** 获取颜色,通过rgb - parameter red : 红色 - parameter green : 绿色 - parameter blue : 蓝色 - parameter alpha : 透明度 - returns : 颜色 */ static func withRGBA(_ red:CGFloat, _ green:CGFloat, _ blue:CGFloat, _ alpha:CGFloat) -> UIColor { return UIColor(red: red / 255, green: green / 255, blue: blue / 255, alpha: alpha) } }
相关文章推荐
- swift-3.0 将HexColor转变为UIColor的方法
- C# 3.0新特性初步研究 Part2:使用扩展方法
- C# 3.0新特性初步研究 Part2:使用扩展方法_C#教程
- 在.net 2.0/3.0程序中使用扩展方法
- 从C# 3.0说以人为本(三)—— 扩展方法
- Response.Redirect在新窗口打开 && 3.0扩展方法
- C# 3.0语言新特性(语言规范):2 扩展方法
- DotNet 3.0+ 新特性学习 之 扩展方法(Extension Method)
- C# 3.0 —— 扩展方法
- 升级到Firefox 3.0后解决扩展版本不兼容的方法
- C# 3.0 新特性:扩展方法初探(转)
- 步步为营VS 2008 + .NET 3.5(3) - C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Extension Methods(扩展方法)
- (二)初学C# 3.0之扩展方法
- C# 3.0新特性之扩展方法
- 在.net 2.0/3.0程序中使用扩展方法
- 初探C# 3.0 (1) - 隐式类型变量, 扩展方法, Lambda表达式
- 一个自己写的真正判断文件格式,文件大小,而并不仅仅从扩展名来进行判断的上传方法,进一步加强防止软件或恶意的木马图片上传
- C# 3.0新特性初步研究 Part2:使用扩展方法_C#教程
- 扩展方法(C# 3.0 语言)
- C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Extension Methods(扩展方法)