Swift version: 5.10
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 Take the pain out of configuring and testing your paywalls. RevenueCat's all new Paywall Editor allow you to remotely configure your paywall view without any code changes or app updates.
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.