Enums 在Swift 3中是否有简单的方法使用字符串原始数据为UIColor的枚举创建UIColor扩展?

Enums 在Swift 3中是否有简单的方法使用字符串原始数据为UIColor的枚举创建UIColor扩展?,enums,swift3,uicolor,Enums,Swift3,Uicolor,我想为UIColor创建一个简单的扩展,这样我就可以执行以下操作: extension UIColor { enum colorString: String { .... } } let array: [UIColor.colorString] = [ .red, .green, .blue] let color: UIColor = array[1] let text: String = array[1].rawValue 但是我很难让扩展部分正常

我想为UIColor创建一个简单的扩展,这样我就可以执行以下操作:

extension UIColor {
    enum colorString: String  {

        ....
    }
}


let array: [UIColor.colorString] = [ .red, .green, .blue]

let color: UIColor = array[1]

let text: String = array[1].rawValue

但是我很难让扩展部分正常工作。我尝试了多次,但都没有成功。我可能错过了什么。我非常感谢你的帮助

你可以这样做。这取决于您要为多少种颜色执行此操作。不确定您打算用它做什么,但它看起来不是最有用的扩展

extension UIColor {
    convenience init(_ colorString: ColorString) {
        switch colorString {
        case .red:
            self.init(red:1.0, green:0.0, blue:0.0, alpha:1.0)
        case .green:
            self.init(red:0.0, green:1.0, blue:0.0, alpha:1.0)
        case .blue:
            self.init(red:0.0, green:0.0, blue:1.0, alpha:1.0)
        }
    }
    enum ColorString: String  {
        case red
        case green
        case blue
    }
}
从colorString到UIColor的转换必须是

let color = UIColor(array[1])

那么你的问题是什么?我没有成功创建扩展的内容。上面用“…..”表示。怎么不成功?所以基本上我想,我可以用枚举值来表示UIColor值。(如上所示的用法示例)。但是XCode/Swift编译器不允许我这么做。“不允许我这么做”这是什么意思?伙计,你想让我猜你的代码是什么,问题是什么?