将NSString颜色名称转换为UIColor

时间:2016-10-17 10:10:55

标签: ios uicolor

我有一项任务是将NS.String颜色名称ex:“Green”从configuration.plist文件转换为UIColor或十六进制颜色代码ex:“00ff00”。我已经有一个代码将十六进制颜色代码转换为UIColor。我尝试使用其他几个代码示例来完成此任务,但是无法正常工作。 请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

唯一可以实现的方法是将十六进制颜色代码存储在应用中的颜色名称中。

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

你的申请会做这样的事情

红色:'红色的六角' 蓝色:'Hex for Blue' 绿色:'Hex for Green'

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

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

答案 1 :(得分:0)

如果您使用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
        }

    }
}

然后你需要一个使用这个新枚举的UICOlor类的新init

extension UIColor {

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

    init(hex: Int) {
    }
}

之后,您可以启动这样的颜色:

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