use*_*967 0 rgb xcode uicolor ios swift
我正在尝试将TopScoreContainer的背景颜色更改为更浅的绿色.我不想使用greenColor().这是代码行:
self.TopScoreContainer.backgroundColor = UIColor.greenColor()
Run Code Online (Sandbox Code Playgroud)
是否可以用十六进制数字或RGB值代替greenColor()?谢谢.
let myCustomColorHSBa = UIColor(hue: 120/360, saturation: 0.25 , brightness: 1.0 , alpha: 1)
let myCustomColorRGBa = UIColor(red: 191/255, green: 1, blue: 191/255, alpha: 1)
Run Code Online (Sandbox Code Playgroud)
使用它作为扩展只读计算var:
只读计算属性
具有getter但没有setter的计算属性称为只读计算属性.只读计算属性始终返回一个值,可以通过点语法访问,但不能设置为其他值.
注意
必须使用var关键字将计算属性(包括只读计算属性)声明为变量属性,因为它们的值不固定.let关键字仅用于常量属性,以指示一旦将它们设置为实例初始化的一部分,就无法更改它们的值.
您可以通过删除get关键字及其大括号来简化只读计算属性的声明:
extension UIColor {
var lightGreen: UIColor {
return UIColor(red: 191/255, green: 1, blue: 191/255, alpha: 1)
}
}
let lightGreen = UIColor().lightGreen
Run Code Online (Sandbox Code Playgroud)
或者您也可以创建自己的htmlColor输入,如下所示:
更新:Xcode 7.2•Swift 2.1.1
extension String {
subscript(range: Range<Int>) -> String {
return range.startIndex < 0 || range.endIndex > characters.count ? "Out of Range" : substringWithRange(Range(start: startIndex.advancedBy(range.startIndex),end: startIndex.advancedBy(range.endIndex)))
}
var hexaCGFloat: CGFloat {
return CGFloat(strtoul(self, nil, 16))
}
}
extension UIColor {
convenience init(htmlColor: String, alpha: Double) {
self.init(red: htmlColor[1...2].hexaCGFloat / 255.0, green: htmlColor[3...4].hexaCGFloat / 255.0, blue: htmlColor[5...6].hexaCGFloat / 255.0, alpha: CGFloat(alpha) )
}
convenience init(r: Int, g:Int , b:Int , a: Int) {
self.init(red: CGFloat(r)/255, green: CGFloat(g)/255, blue: CGFloat(b)/255, alpha: CGFloat(a)/255)
}
}
let myColor = UIColor(r: 255 , g: 0, b: 0, a: 255)
let myHtmlWebColor = UIColor(htmlColor: "#bfffbf", alpha: 1.0)
Run Code Online (Sandbox Code Playgroud)