extension UIColor {
//十六进制颜色值转换
class func colorWithHex(_rgbValue:Int,_alpha:CGFloat = 1.0)-> UIColor {
return UIColor(red: ((CGFloat)((_rgbValue & 0xFF0000) >> 16)) / 255.0,green: ((CGFloat)((_rgbValue & 0xFF00) >> 8)) / 255.0,blue: ((CGFloat)(_rgbValue & 0xFF)) / 255.0,alpha: _alpha)
}
/// 快速构建rgb颜色
///
/// - Parameters:
/// - r: r
/// - g: g
/// - b: b
/// - Returns: 返回rgb颜色对象,alpha默认1
class func colorWithRGB(_ r: CGFloat, g: CGFloat, b: CGFloat) -> UIColor {
return UIColor(red: r/255.0, green: g/255.0, blue: b/255.0, alpha: 1)
}
/// 生成随机颜色
///
/// - Returns: 返回随机色
class func randomColor() -> UIColor {
let r = CGFloat(arc4random_uniform(256))
let g = CGFloat(arc4random_uniform(256))
let b = CGFloat(arc4random_uniform(256))
return UIColor.colorWithRGB(r, g: g, b: b)
}
/// 16进制转UIColor
///
/// - Parameter hex: 16进制
/// - Returns: UIColor
class func colorWithHexString(_ hex:String) -> UIColor {
var cString:String = hex.trimmingCharacters(in: NSCharacterSet.whitespacesAndNewlines).uppercased()
if (cString.hasPrefix("#")) {
cString = (cString as NSString).substring(from: 1)
}
if (cString.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: CGFloat(1))
}
/// 返回16进制颜色
class func colorWithHexString(_ hex: String, alpha: CGFloat) -> UIColor {
var cString:String = hex.trimmingCharacters(in: NSCharacterSet.whitespacesAndNewlines).uppercased()
if (cString.hasPrefix("#")) {
cString = (cString as NSString).substring(from: 1)
}
if (cString.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)
}
}
UIColor 扩展
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- //返回时间格式 //1.获取当前的时间 // 获取年,月,日 //2.获取消息发送时间 // 获取年,月,日 /...
- 本文以十六进制颜色转RGB颜色为主,同时做了原生的 UIColor(red: CGFloat, green: C...