Skip to content

Instantly share code, notes, and snippets.

@CanTheAlmighty
Created November 10, 2015 20:04
Show Gist options
  • Save CanTheAlmighty/f3b0a15b6104dbd13b9c to your computer and use it in GitHub Desktop.
Save CanTheAlmighty/f3b0a15b6104dbd13b9c to your computer and use it in GitHub Desktop.

Revisions

  1. CanTheAlmighty created this gist Nov 10, 2015.
    28 changes: 28 additions & 0 deletions UIColor+Hex.swift
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    import UIKit

    public extension UIColor
    {
    class func components(alphaHex hex : UInt32) -> (r:UInt8, g:UInt8, b:UInt8, a:UInt8)
    {
    let r = UInt8((hex & 0xFF000000) >> 24)
    let g = UInt8((hex & 0x00FF0000) >> 16)
    let b = UInt8((hex & 0x0000FF00) >> 8)
    let a = UInt8((hex & 0x000000FF))

    return (r,g,b,a)
    }

    /// Creates a UIColor from a 0xRRGGBBAA value
    convenience init(alphaHex hex : UInt32)
    {
    let (r,g,b,a) = UIColor.components(alphaHex: hex)
    self.init(red: CGFloat(r) / 255.0, green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: CGFloat(a) / 255.0)
    }

    /// Creates a UIColor from a right-padded UInt32 (0x00RRGGBB or 0xRRGGBB), with optional alpha
    convenience init(hex : UInt32, alpha : CGFloat = 1.0)
    {
    let (r,g,b,_) = UIColor.components(alphaHex: hex << 8)
    self.init(red: CGFloat(r) / 255.0, green: CGFloat(g) / 255.0, blue: CGFloat(b) / 255.0, alpha: alpha)
    }
    }