而不是存儲在一個plist中你的顏色,可以考慮將它們放置在一個結構:「的UIColor + Styling.swift」
public extension UIColor {
struct AppName {
static let white = UIColor(hex: "#FFFFFF")
static let black = UIColor(hex: "#3D2C2A")
static let red = UIColor(hex: "#D84C3A")
static let darkRed = UIColor(hex: "#B84132")
static let green = UIColor(hex: "#6C9491")
}
}
然後你就可以使用它們像這樣:
backgroundColor = UIColor.AppName.green
要啓動的UIColor對象與十六進制ç Ode實施此擴展名:'UIColor + Hex.swift'
public extension UIColor {
/// You can pass a hex with or without # and with or without alpha
convenience init(hex: String) {
var red: CGFloat = 0.0
var green: CGFloat = 0.0
var blue: CGFloat = 0.0
var alpha: CGFloat = 1.0
let cleanHex = hex.replacingOccurrences(of: "#", with: "")
let scanner = Scanner(string: cleanHex)
var hexValue: CUnsignedLongLong = 0
if scanner.scanHexInt64(&hexValue) {
if cleanHex.characters.count == 6 {
red = CGFloat((hexValue & 0xFF0000) >> 16)/255.0
green = CGFloat((hexValue & 0x00FF00) >> 8)/255.0
blue = CGFloat(hexValue & 0x0000FF)/255.0
} else if cleanHex.characters.count == 8 {
alpha = CGFloat((hexValue & 0xFF000000) >> 24)/255.0
red = CGFloat((hexValue & 0x00FF0000) >> 16)/255.0
green = CGFloat((hexValue & 0x0000FF00) >> 8)/255.0
blue = CGFloat(hexValue & 0x000000FF) /255.0
} else {
print("invalid rgb string, length should be 6 or 8", terminator: "")
}
} else {
print("scan hex error")
}
self.init(red:red, green:green, blue:blue, alpha:alpha)
}
}
您可以在plist中添加十六進制顏色代碼,它可以通過編程方式讀取並進行處理。 –
爲什麼不是一個靜態類/屬性與你的顏色? –
@AnandSuthar這是個好主意!你能詳細解答一個答案嗎?十六進制應該是一個字符串或數字? – Curnelious