How to get RGB values from UIColor?
const CGFloat *colors = CGColorGetComponents( curView.backgroundColor.CGColor );
These links provide further details:
SWIFT 3 & 4
I found that cgColor.components would not always return 4 color values, so I changed this so it gets them from a CIColor wrapper
extension UIColor { var redValue: CGFloat{ return CIColor(color: self).red } var greenValue: CGFloat{ return CIColor(color: self).green } var blueValue: CGFloat{ return CIColor(color: self).blue } var alphaValue: CGFloat{ return CIColor(color: self).alpha }}
SWIFT 2
extension UIColor { var red: CGFloat{ return CGColorGetComponents(self.CGColor)[0] } var green: CGFloat{ return CGColorGetComponents(self.CGColor)[1] } var blue: CGFloat{ return CGColorGetComponents(self.CGColor)[2] } var alpha: CGFloat{ return CGColorGetComponents(self.CGColor)[3] }}
It's not the most efficient way so I wouldn't go using this where a view will be constantly re-drawn.