swift 如何使用16进制字符串颜色

2024-01-05  本文已影响0人  江河_ios

swift 如何使用16进制字符串颜色

直接上代码,全都是❤️

直接复制,调用即可
import Foundation
import UIKit
extension UIColor {
    
    convenience init(hexString: String) {
           let hexString = hexString.trimmingCharacters(in: .whitespacesAndNewlines)
           let scanner = Scanner(string: hexString)
            
           if hexString.hasPrefix("#") {
               scanner.scanLocation = 1
           }
            
           var color: UInt32 = 0
           scanner.scanHexInt32(&color)
            
           let mask = 0x000000FF
           let r = Int(color >> 16) & mask
           let g = Int(color >> 8) & mask
           let b = Int(color) & mask
            
           let red   = CGFloat(r) / 255.0
           let green = CGFloat(g) / 255.0
           let blue  = CGFloat(b) / 255.0
            
           self.init(red: red, green: green, blue: blue, alpha: 1)
       }
        
       // UIColor -> Hex String
       var hexString: String? {
           var red: CGFloat = 0
           var green: CGFloat = 0
           var blue: CGFloat = 0
           var alpha: CGFloat = 0
            
           let multiplier = CGFloat(255.999999)
            
           guard self.getRed(&red, green: &green, blue: &blue, alpha: &alpha) else {
               return nil
           }
            
           if alpha == 1.0 {
               return String(
                   format: "#%02lX%02lX%02lX",
                   Int(red * multiplier),
                   Int(green * multiplier),
                   Int(blue * multiplier)
               )
           }
           else {
               return String(
                   format: "#%02lX%02lX%02lX%02lX",
                   Int(red * multiplier),
                   Int(green * multiplier),
                   Int(blue * multiplier),
                   Int(alpha * multiplier)
               )
           }
       }

}
       

使用方法

let topView = UIView(frame: CGRect(x: 0, y: 0, width:100, height:100))
       topView.backgroundColor  = UIColor(hexString: "#ffEDEDED")
       self.view.addSubview(topView)
上一篇 下一篇

猜你喜欢

热点阅读