snipt

Ctrl+h for KB shortcuts

Swift

Use hex colors in Swift 2

extension UIColor {
    public convenience init?(hexString: String) {
        let r, g, b, a: CGFloat
        
        if hexString.hasPrefix("#") {
            let start = hexString.startIndex.advancedBy(1)
            let hexColor = hexString.substringFromIndex(start)
            
            if hexColor.characters.count == 8 {
                let scanner = NSScanner(string: hexColor)
                var hexNumber: UInt64 = 0
                
                if scanner.scanHexLongLong(&hexNumber) {
                    r = CGFloat((hexNumber & 0xff000000) >> 24) / 255
                    g = CGFloat((hexNumber & 0x00ff0000) >> 16) / 255
                    b = CGFloat((hexNumber & 0x0000ff00) >> 8) / 255
                    a = CGFloat(hexNumber & 0x000000ff) / 255
                    
                    self.init(red: r, green: g, blue: b, alpha: a)
                    return
                }
            }
        }
        
        return nil
    }
}

anImageView.backgroundColor = UIColor(hexString: "#ffe700ff")

Description

Use hex colors in Swift 2
https://snipt.net/embed/126d1a78dff28473b6c98f48ca640e6c/
/raw/126d1a78dff28473b6c98f48ca640e6c/
126d1a78dff28473b6c98f48ca640e6c
swift
Swift
29
2019-07-17T00:40:17
True
False
False
Dec 06, 2015 at 01:14 PM
/api/public/snipt/142878/
use-hex-colors-in-swift-2
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a> <a href="#L-17">17</a> <a href="#L-18">18</a> <a href="#L-19">19</a> <a href="#L-20">20</a> <a href="#L-21">21</a> <a href="#L-22">22</a> <a href="#L-23">23</a> <a href="#L-24">24</a> <a href="#L-25">25</a> <a href="#L-26">26</a> <a href="#L-27">27</a> <a href="#L-28">28</a> <a href="#L-29">29</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a><span class="kd">extension</span> <span class="bp">UIColor</span> <span class="p">{</span> </span><span id="L-2"><a name="L-2"></a> <span class="kd">public</span> <span class="kr">convenience</span> <span class="kd">init</span><span class="p">?(</span><span class="n">hexString</span><span class="p">:</span> <span class="nb">String</span><span class="p">)</span> <span class="p">{</span> </span><span id="L-3"><a name="L-3"></a> <span class="kd">let</span> <span class="nv">r</span><span class="p">,</span> <span class="n">g</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">a</span><span class="p">:</span> <span class="n">CGFloat</span> </span><span id="L-4"><a name="L-4"></a> </span><span id="L-5"><a name="L-5"></a> <span class="k">if</span> <span class="n">hexString</span><span class="p">.</span><span class="n">hasPrefix</span><span class="p">(</span><span class="s">&quot;#&quot;</span><span class="p">)</span> <span class="p">{</span> </span><span id="L-6"><a name="L-6"></a> <span class="kd">let</span> <span class="nv">start</span> <span class="p">=</span> <span class="n">hexString</span><span class="p">.</span><span class="n">startIndex</span><span class="p">.</span><span class="n">advancedBy</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span> </span><span id="L-7"><a name="L-7"></a> <span class="kd">let</span> <span class="nv">hexColor</span> <span class="p">=</span> <span class="n">hexString</span><span class="p">.</span><span class="n">substringFromIndex</span><span class="p">(</span><span class="n">start</span><span class="p">)</span> </span><span id="L-8"><a name="L-8"></a> </span><span id="L-9"><a name="L-9"></a> <span class="k">if</span> <span class="n">hexColor</span><span class="p">.</span><span class="n">characters</span><span class="p">.</span><span class="bp">count</span> <span class="p">==</span> <span class="mi">8</span> <span class="p">{</span> </span><span id="L-10"><a name="L-10"></a> <span class="kd">let</span> <span class="nv">scanner</span> <span class="p">=</span> <span class="bp">NSScanner</span><span class="p">(</span><span class="n">string</span><span class="p">:</span> <span class="n">hexColor</span><span class="p">)</span> </span><span id="L-11"><a name="L-11"></a> <span class="kd">var</span> <span class="nv">hexNumber</span><span class="p">:</span> <span class="nb">UInt64</span> <span class="p">=</span> <span class="mi">0</span> </span><span id="L-12"><a name="L-12"></a> </span><span id="L-13"><a name="L-13"></a> <span class="k">if</span> <span class="n">scanner</span><span class="p">.</span><span class="n">scanHexLongLong</span><span class="p">(&amp;</span><span class="n">hexNumber</span><span class="p">)</span> <span class="p">{</span> </span><span id="L-14"><a name="L-14"></a> <span class="n">r</span> <span class="p">=</span> <span class="n">CGFloat</span><span class="p">((</span><span class="n">hexNumber</span> <span class="o">&amp;</span> <span class="mh">0xff000000</span><span class="p">)</span> <span class="o">&gt;&gt;</span> <span class="mi">24</span><span class="p">)</span> <span class="o">/</span> <span class="mi">255</span> </span><span id="L-15"><a name="L-15"></a> <span class="n">g</span> <span class="p">=</span> <span class="n">CGFloat</span><span class="p">((</span><span class="n">hexNumber</span> <span class="o">&amp;</span> <span class="mh">0x00ff0000</span><span class="p">)</span> <span class="o">&gt;&gt;</span> <span class="mi">16</span><span class="p">)</span> <span class="o">/</span> <span class="mi">255</span> </span><span id="L-16"><a name="L-16"></a> <span class="n">b</span> <span class="p">=</span> <span class="n">CGFloat</span><span class="p">((</span><span class="n">hexNumber</span> <span class="o">&amp;</span> <span class="mh">0x0000ff00</span><span class="p">)</span> <span class="o">&gt;&gt;</span> <span class="mi">8</span><span class="p">)</span> <span class="o">/</span> <span class="mi">255</span> </span><span id="L-17"><a name="L-17"></a> <span class="n">a</span> <span class="p">=</span> <span class="n">CGFloat</span><span class="p">(</span><span class="n">hexNumber</span> <span class="o">&amp;</span> <span class="mh">0x000000ff</span><span class="p">)</span> <span class="o">/</span> <span class="mi">255</span> </span><span id="L-18"><a name="L-18"></a> </span><span id="L-19"><a name="L-19"></a> <span class="kc">self</span><span class="p">.</span><span class="kd">init</span><span class="p">(</span><span class="n">red</span><span class="p">:</span> <span class="n">r</span><span class="p">,</span> <span class="n">green</span><span class="p">:</span> <span class="n">g</span><span class="p">,</span> <span class="n">blue</span><span class="p">:</span> <span class="n">b</span><span class="p">,</span> <span class="n">alpha</span><span class="p">:</span> <span class="n">a</span><span class="p">)</span> </span><span id="L-20"><a name="L-20"></a> <span class="k">return</span> </span><span id="L-21"><a name="L-21"></a> <span class="p">}</span> </span><span id="L-22"><a name="L-22"></a> <span class="p">}</span> </span><span id="L-23"><a name="L-23"></a> <span class="p">}</span> </span><span id="L-24"><a name="L-24"></a> </span><span id="L-25"><a name="L-25"></a> <span class="k">return</span> <span class="kc">nil</span> </span><span id="L-26"><a name="L-26"></a> <span class="p">}</span> </span><span id="L-27"><a name="L-27"></a><span class="p">}</span> </span><span id="L-28"><a name="L-28"></a> </span><span id="L-29"><a name="L-29"></a><span class="n">anImageView</span><span class="p">.</span><span class="n">backgroundColor</span> <span class="p">=</span> <span class="bp">UIColor</span><span class="p">(</span><span class="n">hexString</span><span class="p">:</span> <span class="s">&quot;#ffe700ff&quot;</span><span class="p">)</span> </span></pre></div> </td></tr></table>
color, swift
--- 
+++ 
@@ -0,0 +1,29 @@
+extension UIColor {
+    public convenience init?(hexString: String) {
+        let r, g, b, a: CGFloat
+        
+        if hexString.hasPrefix("#") {
+            let start = hexString.startIndex.advancedBy(1)
+            let hexColor = hexString.substringFromIndex(start)
+            
+            if hexColor.characters.count == 8 {
+                let scanner = NSScanner(string: hexColor)
+                var hexNumber: UInt64 = 0
+                
+                if scanner.scanHexLongLong(&hexNumber) {
+                    r = CGFloat((hexNumber & 0xff000000) >> 24) / 255
+                    g = CGFloat((hexNumber & 0x00ff0000) >> 16) / 255
+                    b = CGFloat((hexNumber & 0x0000ff00) >> 8) / 255
+                    a = CGFloat(hexNumber & 0x000000ff) / 255
+                    
+                    self.init(red: r, green: g, blue: b, alpha: a)
+                    return
+                }
+            }
+        }
+        
+        return nil
+    }
+}
+
+anImageView.backgroundColor = UIColor(hexString: "#ffe700ff")