具有动态alpha值的枚举颜色

时间:2017-01-26 03:52:41

标签: ios swift enums

我有一个枚举颜色返回颜色,我想知道枚举是否可以实现动态aplha的变化?

enum Colors {

        case
         text,
         yesColorWith(alpha:CGFloat)


        var color: UIColor {
            switch self {
            case .text: return UIColorFromHEX(0xd1d1d1, alpha: 1.0)
            case .yesColorWith(alpha: CGFloat) : return UIColorFromHEX(0x89A225, alpha: alpha)
            }
        }
    }


func UIColorFromHEX(_ hex: UInt, alpha:Float) -> UIColor {

        return UIColor(
            red: CGFloat((hex >> 16) & 0xff) / 255,
            green: CGFloat((hex >> 08) & 0xff) / 255,
            blue: CGFloat((hex >> 00) & 0xff) / 255,
            alpha: CGFloat(alpha))
    }

1 个答案:

答案 0 :(得分:2)

欢迎来到Swift case模式的狂野和古怪世界。变化

case .yesColorWith(alpha: CGFloat) :

case .yesColorWith(let alpha) :

因此:

enum Colors {
    case text
    case yesColorWith(alpha: CGFloat)
    var color: UIColor {
        switch self {
        case .text:
            return UIColorFromHEX(0xd1d1d1, alpha: 1.0)
        case .yesColorWith(let alpha): // <-*
            return UIColorFromHEX(0x89A225, alpha: alpha)
        }
    }
}