Chameleon is a Swift library to work with colors. It comes with a collection of hand-picked colors for you to use, allows the generation of color schemes from both colors and images, provides handy color manipulation methods, and much more.
Let’s see have some fun with colors shall we? All the code in the examples below is available in the Advent Calendar repo on GitHub
How to pick a color with Chameleon
Chameleon’s colors are all prefixed with
flat, so you can type
UIColor.flat and rely on Xcode’s autocompletion to show you all the available colors, or have a look in the
UIColor+Chameleon category for a full list.
let rainbowColors = [ UIColor.flatRedColor(), UIColor.flatOrangeColor(), UIColor.flatYellowColor(), UIColor.flatGreenColor(), UIColor.flatSkyBlueColor(), UIColor.flatPurpleColor(), UIColor.flatBlueColor(), ]
Yes, I know those are not the names of the rainbow colors, but take a look at the result:
Chameleons offers more than just nice colors, for example:
How to manipulate colors with Chameleon
UIColor.flatOrangeColor().lightenByPercentage(0.1) UIColor.flatOrangeColor().darkenByPercentage(0.1) UIColor.orangeColor().flatten()
How to create gradients with Chameleon
aView.backgroundColor = UIColor.init( gradientStyle: UIGradientStyle.LeftToRight, withFrame: aView.frame, andColors: [ UIColor.flatOrangeColor(), UIColor.flatGreenColor() ] )
The possible style options are
.Radial. Note that a
CGRect on which to spread the color needs to be provided.
Finally here’s a pretty handy functionality if you want to adapt your UI colors to an image provided by the user:
How to create a color using an image with Chameleon
let image: UIImage = // ... UIColor.init(averageColorFromImage: image, withAlpha: 1)
Where to go from here
The iOS Times Advent Calendar’s posts certainly don’t aim to be comprehensive tutorials on how to use a library, but rather provide a little taste of it, to ignite your curiosity.
That’s it for today. See you tomorrow with a tool that will help you write consistent Swift code. Subscribe to the email list to avoid missing out.
If you found this post useful and want to support the Advent Calendar please consider sharing it on your favourite social network using the buttons below. Thanks 🎅