zoukankan      html  css  js  c++  java
  • swift 16进制转颜色

    import Foundation
    
    extension UIColor{
        
        /// 随机色
        static var randomColor:UIColor{
            get{
                let red = CGFloat(arc4random()%256)/255.0
                let green = CGFloat(arc4random()%256)/255.0
                let blue = CGFloat(arc4random()%256)/255.0
                return UIColor(red: red, green: green, blue: blue, alpha: 1.0)
            }
        }
       
     
        /// 16进制字符串转颜色
        /// - Parameter hex: 16进制字符串
        public convenience init(hex: String) {
    
                var red:   CGFloat = 0.0
                var green: CGFloat = 0.0
                var blue:  CGFloat = 0.0
                var alpha: CGFloat = 1.0
                var hex:   String = hex
    
                if hex.hasPrefix("#") {
                    let index = hex.index(hex.startIndex, offsetBy: 1)
                    hex = String(hex[index...])
                }
    
                let scanner = Scanner(string: hex)
                var hexValue: CUnsignedLongLong = 0
                if scanner.scanHexInt64(&hexValue) {
                    switch (hex.count) {
                    case 3:
                        red   = CGFloat((hexValue & 0xF00) >> 8)       / 15.0
                        green = CGFloat((hexValue & 0x0F0) >> 4)       / 15.0
                        blue  = CGFloat(hexValue & 0x00F)              / 15.0
                    case 4:
                        red   = CGFloat((hexValue & 0xF000) >> 12)     / 15.0
                        green = CGFloat((hexValue & 0x0F00) >> 8)      / 15.0
                        blue  = CGFloat((hexValue & 0x00F0) >> 4)      / 15.0
                        alpha = CGFloat(hexValue & 0x000F)             / 15.0
                    case 6:
                        red   = CGFloat((hexValue & 0xFF0000) >> 16)   / 255.0
                        green = CGFloat((hexValue & 0x00FF00) >> 8)    / 255.0
                        blue  = CGFloat(hexValue & 0x0000FF)           / 255.0
                    case 8:
                        red   = CGFloat((hexValue & 0xFF000000) >> 24) / 255.0
                        green = CGFloat((hexValue & 0x00FF0000) >> 16) / 255.0
                        blue  = CGFloat((hexValue & 0x0000FF00) >> 8)  / 255.0
                        alpha = CGFloat(hexValue & 0x000000FF)         / 255.0
                    default:
                        print("Invalid RGB string, number of characters after '#' should be either 3, 4, 6 or 8", terminator: "")
                    }
                } else {
                    print("Scan hex error")
                }
                self.init(red:red, green:green, blue:blue, alpha:alpha)
            }
    }
    

      

  • 相关阅读:
    Yii2 使用 Beanstalk 队列系统
    Yii2 注册表单验证规则 手机注册时候使用短信验证码
    Yii2 高级模板 多域名管理问题
    PHP生成缩略图,控制图片质量,支持.png .jpg .gif
    yii2-lock-form 也许这就是你想要的,阻止表单多次提交
    PHP日期与时间戳转换
    PHP/Yii2操作Cookie,常见问题以及注意事项
    对称加密,API加密
    yii2弹出层
    两种不同的Context
  • 原文地址:https://www.cnblogs.com/likun123/p/14437788.html
Copyright © 2011-2022 走看看