Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift 解析16进制颜色大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Swift 版 解析16进制颜色 extension UIColor { public convenience init(hex: String) { var red: CGFloat = 0.0 var green: CGFloat = 0.0 var blue: CGFloat = 0.0 var alpha:

Swift 版 解析16进制颜色

extension @H_262_17@UIColor {

    public convenience init(hex: String) {

        var red:   @H_262_17@CGFloat = 0.0
        var green: @H_262_17@CGFloat = 0.0
        var blue:  @H_262_17@CGFloat = 0.0
        var alpha: @H_262_17@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   = @H_262_17@CGFloat((hexValue & 0xF00) >> 8)       / 15.0
                green = @H_262_17@CGFloat((hexValue & 0x0F0) >> 4)       / 15.0
                blue  = @H_262_17@CGFloat(hexValue & 0x00F)              / 15.0
            case 4:
                red   = @H_262_17@CGFloat((hexValue & 0xF000) >> 12)     / 15.0
                green = @H_262_17@CGFloat((hexValue & 0x0F00) >> 8)      / 15.0
                blue  = @H_262_17@CGFloat((hexValue & 0x00F0) >> 4)      / 15.0
                alpha = @H_262_17@CGFloat(hexValue & 0x000F)             / 15.0
            case 6:
                red   = @H_262_17@CGFloat((hexValue & 0xFF0000) >> 16)   / 255.0
                green = @H_262_17@CGFloat((hexValue & 0x00FF00) >> 8)    / 255.0
                blue  = @H_262_17@CGFloat(hexValue & 0x0000FF)           / 255.0
            case 8:
                red   = @H_262_17@CGFloat((hexValue & 0xFF000000) >> 24) / 255.0
                green = @H_262_17@CGFloat((hexValue & 0x00FF0000) >> 16) / 255.0
                blue  = @H_262_17@CGFloat((hexValue & 0x0000FF00) >> 8)  / 255.0
                alpha = @H_262_17@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)
    }

}

使用方式

let _ = UIColor(@H_262_17@hex: "#eeeeee")

大佬总结

以上是大佬教程为你收集整理的Swift 解析16进制颜色全部内容,希望文章能够帮你解决Swift 解析16进制颜色所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。