Enums 在Swift 3中是否有简单的方法使用字符串原始数据为UIColor的枚举创建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 但是我很难让扩展部分正常
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编译器不允许我这么做。“不允许我这么做”这是什么意思?伙计,你想让我猜你的代码是什么,问题是什么?