因为swift中的奇怪颜色解决方案我需要制作customcolor类。我不知道我做得对。
我有一个CustomColors()类
和用法:color = CustomColors().black
和完美的工作
但我想使用像:color = CustomColors(.Black)
我不能这样做:
init(_ Color: Colors)
{
switch Colors
case .Black
return UIColor(r:255,g:255,b:255,a:255)
}
我不知道很多事情。有人可以帮我解决问题吗?谢谢。
您可以使用带有便利初始化程序的UIColor扩展而不是自定义类,如下所示:
extension UIColor {
convenience init(color: Colors) {
switch color {
case .black:
self.init(red: 1, green: 1, blue: 1, alpha: 1)
case .white:
self.init(red: 1, green: 1, blue: 1, alpha: 1)
}
}
}
但是我觉得如果你使用struct
的静态属性预先定义你的颜色会更好:
struct Theme {
static let colorOne = UIColor(red: 0.952941, green: 0.952941, blue: 0.952941, alpha: 1.0) // F3F3F3
static let colorTwo = UIColor(red: 0.203922, green: 0.203922, blue: 0.203922, alpha: 1.0) // 343434
// and so on...
}
用法
UILabel().backgroundColor = Theme.colorOne
UILabel().textColor = Theme.colorTwo
您可以使用自定义颜色向UIColor类添加扩展名:
import UIKit
extension UIColor {
static var mediumTurquoise: UIColor {
return UIColor(red:0.31, green:0.82, blue:0.8, alpha:1)
}
}
请确保RGB的值介于0.0和1.0之间。
您可以将自定义颜色用作UIolor.mediumTurquoise