因为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)
}
很多我不知道的事情。有人可以帮我解决问题吗?谢谢。
答案 0 :(得分:0)
您可以使用带有便利初始值设定项的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
答案 1 :(得分:0)
您可以使用自定义颜色向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