由于 Swift 中奇怪的颜色解决方案,我需要制作自定义颜色类。我不知道我做得对吗。
我有一个类 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
关于Swift 右 CustomColor 类声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49050808/