Skip to content

Instantly share code, notes, and snippets.

@mbalex99
Created September 26, 2015 00:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mbalex99/7bc0f85c13cedc8cc851 to your computer and use it in GitHub Desktop.
Save mbalex99/7bc0f85c13cedc8cc851 to your computer and use it in GitHub Desktop.
Eden Color Enum
//
// UIColorExtensions.swift
// Eden
//
// Created by Maximilian Alexander on 9/18/15.
// Copyright © 2015 Epoque. All rights reserved.
//
import UIKit
extension UIColor {
public convenience init(rgba: String) {
var red: CGFloat = 0.0
var green: CGFloat = 0.0
var blue: CGFloat = 0.0
var alpha: CGFloat = 1.0
if rgba.hasPrefix("#") {
let index = rgba.startIndex.advancedBy(1)
let hex = rgba.substringFromIndex(index)
let scanner = NSScanner(string: hex)
var hexValue: CUnsignedLongLong = 0
if scanner.scanHexLongLong(&hexValue) {
switch (hex.characters.count) {
case 3:
red = CGFloat((hexValue & 0xF00) >> 8) / 15.0
green = CGFloat((hexValue & 0x0F0) >> 4) / 15.0
blue = CGFloat(hexValue & 0x00F) / 15.0
case 4:
red = CGFloat((hexValue & 0xF000) >> 12) / 15.0
green = CGFloat((hexValue & 0x0F00) >> 8) / 15.0
blue = CGFloat((hexValue & 0x00F0) >> 4) / 15.0
alpha = CGFloat(hexValue & 0x000F) / 15.0
case 6:
red = CGFloat((hexValue & 0xFF0000) >> 16) / 255.0
green = CGFloat((hexValue & 0x00FF00) >> 8) / 255.0
blue = CGFloat(hexValue & 0x0000FF) / 255.0
case 8:
red = CGFloat((hexValue & 0xFF000000) >> 24) / 255.0
green = CGFloat((hexValue & 0x00FF0000) >> 16) / 255.0
blue = CGFloat((hexValue & 0x0000FF00) >> 8) / 255.0
alpha = CGFloat(hexValue & 0x000000FF) / 255.0
default:
print("Invalid RGB string, number of characters after '#' should be either 3, 4, 6 or 8", terminator: "")
}
} else {
print("Scan hex error")
}
} else {
print("Invalid RGB string, missing '#' as prefix", terminator: "")
}
self.init(red:red, green:green, blue:blue, alpha:alpha)
}
}
enum EdenColor : CustomStringConvertible{
case RedLighter;
case RedDarker;
case OrangeLighter;
case OrangeDarker;
case GreenLighter;
case GreenDarker;
case BlueLighter;
case BlueDarker;
case BlueLogo;
case PurpleDarker;
case PurpleLighter;
case DarkBackground;
var description : String {
switch self {
case .RedLighter: return "#DC5563"
case .RedDarker: return "#C64C57"
case .OrangeDarker: return "#FA9D4D"
case .OrangeLighter: return "#E18D44"
case .GreenDarker: return "#044C29"
case .GreenLighter: return "#45BF55"
case .BlueDarker: return "#2E59A9"
case .BlueLighter: return "#37A8E0"
case .BlueLogo: return "#3382C5"
case .PurpleDarker: return "#8153BF"
case .PurpleLighter: return "#8E5CD5"
case .DarkBackground: return "#263238"
}
}
var color: UIColor {
return UIColor(rgba: self.description)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment