Swift version: 5.6
Creating a UIColor
from red, green, blue, and alpha (RGBA) is easy enough:
let color = UIColor(red: 0.8, green: 0.1, blue: 0.5, alpha: 1)
But when you want to read those values back, you need to do a little more work. UIColor
has a built-in method called getRed()
, which unpacks the RGBA values into variable floats – you need to create four variables first, then pass them in by reference:
var red: CGFloat = 0
var green: CGFloat = 0
var blue: CGFloat = 0
var alpha: CGFloat = 0
color.getRed(&red, green: &green, blue: &blue, alpha: &alpha)
When that runs, red
will have 0.8, green
will have 0.1, and so on.
Because this is a pain to use you might find it best to wrap it up in an extension:
extension UIColor {
var rgba: (red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) {
var red: CGFloat = 0
var green: CGFloat = 0
var blue: CGFloat = 0
var alpha: CGFloat = 0
getRed(&red, green: &green, blue: &blue, alpha: &alpha)
return (red, green, blue, alpha)
}
}
Now you can use color.rgba
to get back a tuple of all four color values.
SPONSORED From March 20th to 26th, you can join a FREE crash course for mid/senior iOS devs who want to achieve an expert level of technical and practical skills – it’s the fast track to being a complete senior developer!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 5.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.