如何在swift中将UIColor类型的值转换为Uint

Mar*_*ano 2 colors uicolor uint swift

我有这个UIColor:

UIColor(red: 0.2, green: 0.4118, blue: 0.1176, alpha: 1.0) 
Run Code Online (Sandbox Code Playgroud)

我需要转换为Uint.我怎样才能做到这一点?

编辑:

func showEmailMessage(advice : String)
{
    _ = SCLAlertView().showSuccess("Congratulation", subTitle: advice, closeButtonTitle: "Ok", duration : 10, colorStyle: 0x33691e, colorTextButton: 0xFFFFFF)
}
Run Code Online (Sandbox Code Playgroud)

颜色样式字段需要Uint

dfr*_*fri 6

您可以使用该UIColor.getRed(...)方法提取颜色CGFloat,然后将CGFloat三元组的值转换为UInt32变量的正确位位置.

// Example: use color triplet CC6699 "=" {204, 102, 153} (RGB triplet)
let color = UIColor(red: 204.0/255.0, green: 102.0/255.0, blue: 153.0/255.0, alpha: 1.0)

// read colors to CGFloats and convert and position to proper bit positions in UInt32
var red: CGFloat = 0, green: CGFloat = 0, blue: CGFloat = 0, alpha: CGFloat = 0
if color.getRed(&red, green: &green, blue: &blue, alpha: &alpha) {

    var colorAsUInt : UInt32 = 0

    colorAsUInt += UInt32(red * 255.0) << 16 + 
                   UInt32(green * 255.0) << 8 + 
                   UInt32(blue * 255.0)

    colorAsUInt == 0xCC6699 // true
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅例如语言指南 - 高级操作符,其中包含一些专门用于RGB三元组位移的示例.