我遇到了将UIColors转换为CGColors和CIColors的问题,我无法弄清楚这是一段令人尴尬的时间。这篇文章我在这里回答了我自己的问题。我找到了一些解决方案,但其中一些最终会抛出不必要的异常。
这是我的首选解决方案:
extension UIColor {
func getRed() -> Int {
return Int(self.cgColor.components![0]*255)
}
func getGreen() -> Int {
return Int(self.cgColor.components![1]*255)
}
func getBlue() -> Int {
return Int(self.cgColor.components![2]*255)
}
func getAlpha() -> Int {
return Int(self.cgColor.components![3]*255)
}
func getRGB() -> [Int] {
return [Int(self.cgColor.components![0]*255),
Int(self.cgColor.components![1]*255),
Int(self.cgColor.components![2]*255),
Int(self.cgColor.components![3]*255)]
}
}
用法:
let color = UIColor.white
let r = color.getRed()
let g = color.getGreen()
let b = color.getBlue()
let a = color.getAlpha()
let rgba = color.getRed()
如果您找到更好的解决方案,请添加它。这篇文章只是为了帮助那些很难找到问题解决方案的人。