将 NSString 颜色名称转换为 UIColor

Convert NSString color name to UIColor

我的任务是将 NSString 颜色名称 ex:"Green" 从 configuration.plist 文件转换为 UIColor 或十六进制颜色代码,例如:“00ff00”。我已经有了将十六进制颜色代码转换为 UIColor 的代码。我尝试使用其他几个代码示例来完成此任务,但没有用。 请帮我解决这个问题。

实现此目的的唯一方法是在您的应用中针对颜色名称存储十六进制颜色代码。

您可以维护一个 属性 列表或将这些键值对存储在核心数据中。

你的应用程序会做这样的事情

红色:'Hex for red' 蓝色:'Hex for Blue' 绿色:'Hex for Green'

存储这些键值对的方式由您决定。现在,当您需要从颜色名称中获取颜色时,只需查找它的十六进制代码并将其转换为 UIColor。

您必须对应用程序中期望的所有颜色执行此操作

如果您正在使用 swift,您可以轻松开发该系统。所有人都开始在这样的枚举中定义一组可能的颜色:

enum MyColor: String {
    case green
    case red
    case blue
    // and so on

    var hex: Int {
        switch self {
            case green: return 0xABCDF
            case red: return 0xABCDF
            case blue: return 0xABCDF
        }

    }
}

然后你需要一个新的 init 用于使用这个新枚举的 UICOLor class

extension UIColor {

    convenience init(myColor: MyColor) {
        self.init(hex: myColor.raw)
    }

    init(hex: Int) {
    }
}

之后你可以像这样初始化你的颜色:

let theColor = MyColor(rawValue: "green")
let color = UIcolor(myColor: theColor)