UIColor.swift 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //
  2. // UIColor.swift
  3. // Gasteizko Margolariak
  4. //
  5. // Created by Yuji Hato on 11/5/15.
  6. // Copyright © 2015 Yuji Hato. All rights reserved.
  7. //
  8. import UIKit
  9. extension UIColor {
  10. convenience init(hex: String) {
  11. self.init(hex: hex, alpha:1)
  12. }
  13. convenience init(hex: String, alpha: CGFloat) {
  14. var hexWithoutSymbol = hex
  15. if hexWithoutSymbol.hasPrefix("#") {
  16. hexWithoutSymbol = hex.substring(1)
  17. }
  18. let scanner = NSScanner(string: hexWithoutSymbol)
  19. var hexInt:UInt32 = 0x0
  20. scanner.scanHexInt(&hexInt)
  21. var r:UInt32!, g:UInt32!, b:UInt32!
  22. switch (hexWithoutSymbol.length) {
  23. case 3: // #RGB
  24. r = ((hexInt >> 4) & 0xf0 | (hexInt >> 8) & 0x0f)
  25. g = ((hexInt >> 0) & 0xf0 | (hexInt >> 4) & 0x0f)
  26. b = ((hexInt << 4) & 0xf0 | hexInt & 0x0f)
  27. break;
  28. case 6: // #RRGGBB
  29. r = (hexInt >> 16) & 0xff
  30. g = (hexInt >> 8) & 0xff
  31. b = hexInt & 0xff
  32. break;
  33. default:
  34. // TODO:ERROR
  35. break;
  36. }
  37. self.init(
  38. red: (CGFloat(r)/255),
  39. green: (CGFloat(g)/255),
  40. blue: (CGFloat(b)/255),
  41. alpha:alpha)
  42. }
  43. }