Created
April 6, 2016 12:28
-
-
Save grhowes/39886e56785a02d543097bc8534a0322 to your computer and use it in GitHub Desktop.
A UIColor extension that uses hashing to make a unique color to a string
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// UIColor+GH.swift | |
// Signal GH | |
// | |
// Created by Glenn Howes on 1/15/16. | |
// Copyright © 2016 Generally Helpful Software. All rights reserved. | |
// | |
import UIKit | |
import Colours | |
@objc class ColorPair: NSObject | |
{ | |
let mainColor: UIColor | |
let highlightColor: UIColor | |
init(mainColor: UIColor, highlightColor: UIColor) | |
{ | |
self.mainColor = mainColor | |
self.highlightColor = highlightColor | |
} | |
} | |
var sGoodColors:[UIColor]? | |
extension UIColor | |
{ | |
class func goodColors()-> [UIColor] | |
{ | |
if sGoodColors == nil | |
{ | |
sGoodColors = [UIColor.infoBlueColor(), UIColor.successColor(), UIColor.warningColor(), | |
UIColor.moneyGreenColor(), UIColor.limeColor(), UIColor.cardTableColor(), | |
//UIColor.salmonColor(), | |
//UIColor.brickRedColor(), UIColor.grapefruitColor(), UIColor.pinkColor(), | |
UIColor.indianRedColor(), UIColor.strawberryColor(), UIColor.maroonColor(), | |
// UIColor.watermelonColor(), UIColor.tomatoColor(), UIColor.crimsonColor(), | |
UIColor.dangerColor(), UIColor.black25PercentColor(), UIColor.tealColor(), | |
UIColor.steelBlueColor(), UIColor.robinEggColor(), UIColor.pastelBlueColor(), | |
UIColor.turquoiseColor(), UIColor.skyBlueColor(), UIColor.indigoColor(), | |
UIColor.denimColor(), UIColor.blueberryColor(), UIColor.cornflowerColor(), | |
UIColor.midnightBlueColor(), UIColor.fadedBlueColor(), UIColor.waveColor(), | |
UIColor.emeraldColor(), UIColor.grassColor(), UIColor.seafoamColor(), UIColor.cactusGreenColor(), | |
//UIColor.chartreuseColor(), | |
UIColor.hollyGreenColor(), UIColor.oliveColor(), | |
UIColor.eggplantColor(), UIColor.pastelPurpleColor(), UIColor.coolPurpleColor(), | |
UIColor.plumColor(), UIColor.raspberryColor(), UIColor.fuschiaColor(), UIColor.grapeColor(), | |
UIColor.periwinkleColor(), UIColor.orchidColor(), UIColor.goldenrodColor(), UIColor.mustardColor(), | |
UIColor.goldColor(), UIColor.peachColor(), UIColor.burntOrangeColor(), | |
UIColor.cantaloupeColor(), UIColor.carrotColor(), UIColor.mandarinColor(), UIColor.chiliPowderColor() | |
] | |
} | |
return sGoodColors! | |
} | |
class func colorSchemeForName(name: String)->ColorPair | |
{ | |
let myColors = goodColors() | |
let maxColor = myColors.count | |
let hash = abs(name.hash) | |
let index = hash % maxColor | |
let mainColor = myColors[index] | |
let highlightColor = mainColor.blackOrWhiteContrastingColor() | |
return ColorPair(mainColor: mainColor, highlightColor: highlightColor) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment