Não existe um método integrado para obter UIColor
um valor hexadecimal. Eu me deparei com a dica Coderwall do meu amigo @itseranga sobre como fazer exatamente isso. Ele usa uma função simples para fazer isso.
Como o Swift suporta extensions
, podemos ter essa mesma função de uma forma mais elegante.
Simplesmente criei um extension
de UIColor
e adicionei um convenience init
.
import Foundation
import UIKit
extension UIColor {
convenience init(hex: UInt32, alpha: CGFloat) {
let red = CGFloat((hex & 0xFF0000) >> 16)/256.0
let green = CGFloat((hex & 0xFF00) >> 8)/256.0
let blue = CGFloat(hex & 0xFF)/256.0
self.init(red: red, green: green, blue: blue, alpha: alpha)
}
}
Agora podemos usar isso como você normalmente usaria a UIColor
classe.
view.backgroundColor = UIColor(hex: 0x444444, alpha: 0.7)