有没有简单的方法在Swift 3中使用String原始数据为UIColor的枚举创建UIColor扩展?

时间:2017-05-22 03:51:01

标签: 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

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

1 个答案:

答案 0 :(得分:1)

你可以这样做。取决于你想要做多少颜色。不确定你打算用它做什么,但它看起来不是最有用的扩展。

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])