将字符串转换为UIColor(使用%@进行转换)

问题描述 投票:-3回答:1

如何将字符串%@转换为UIColor,然后将其用作函数。在UIColor扩展中。 。我在扩展程序中尝试了此操作,但没有用。

ios swift string uicolor
1个回答
0
投票

您可以创建一个默认值为String的Color枚举:

enum Color: String {
   case red
   case blue
   case green

   var create: UIColor {
       switch self {
       case .red:
           return UIColor.red
       case .blue:
           return UIColor.blue
       case .green:
           return UIColor.green
      }
   }
}

因为它的默认值为String,所以可以使用字符串初始化枚举:

guard let color = Color(rawValue: "red") else { "handle invalid color error"; return } 
let colorSelected = color.create //// colorSelected is now UIColor.red

0
投票

您的问题不清楚。如果要将十六进制颜色转换为字符串,则代码如下:

internal func hexStringToUIColor (hex:String) -> UIColor {
    var cString:String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()

    if (cString.hasPrefix("#")) {
        cString.remove(at: cString.startIndex)
    }

    if ((cString.count) != 6) {
        return UIColor.gray
    }

    var rgbValue:UInt64 = 0
    Scanner(string: cString).scanHexInt64(&rgbValue)

    return UIColor(
        red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
        green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
        blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
        alpha: CGFloat(1.0)
    )
}
© www.soinside.com 2019 - 2024. All rights reserved.