我非常喜欢使用这样的颜色的快捷方式:
myLabel.fontColor = .gray
制作我自己的,像这样:
static let fadedGreen = SKColor.init(hue: 0.33,
saturation: 1,
brightness: 0.33,
alpha: 1.0)
但是这需要调用我已经把它放入的类来使用这样的缩写fadedGreen
:
myLabel.fontColor = MyStorageClass.fadedGreen
有没有办法可以扩展或以其他方式添加(我假设的)枚举UIColor的预设,这样我就可以制作自己的颜色,只需使用这样的.
点:
myLabel.fontColour = .myCustomColor
......来自我项目的任何地方?
这是否意味着他们也可以立即使用SKColor .presets
?
请原谅我完全不了解如何做这样的事情。
答案 0 :(得分:2)
那些不是真正的颜色快捷方式。这只是推断一种类型。 fontColor
属性的类型为UIColor,而UIColor在类上有一堆只读属性,它们是颜色名称和返回颜色对象。所以当你说
myLabel.fontColor = .myCustomColor
点告诉它“它是某个地方的某个地方,猜猜在哪里”而且Swift去了,好吧,我需要一个UIColor
,所以让我们看看UIColor
类是否具有返回该名称的属性正确的类型。
所以要添加自己的,你必须在UIColor的扩展名中定义你的颜色属性。
extension UIColor {
static let con_pink = UIColor( red: 1.0, green: 0.0, blue: 0.5, alpha: 1.0 )
}
以及可以用作myLabel.fontColor = .con_pink
的那些。
但请注意,如果你这样做,你就有可能碰到苹果可能在未来添加的任何颜色方法。因此,我建议您为属性名称添加前缀(我根据您的用户名为您选择“con_”),以减少Apple使用相同名称的可能性。
答案 1 :(得分:1)
您可以简单地准备一个包含所有习惯常量的.swift文件,例如:
<强> Constants.swift:强>
import Foundation
import UIKit
// MY COLORS
let sandColor = UIColor(red: 239/255, green: 212/255, blue: 111/255, alpha: 1)
然后,您可以在代码中的任何位置(无点):
mySprite.color = sandColor
很明显,您也可以将UIColor
扩展为:
extension UIColor{
class func fadedGreen() -> UIColor{
return UIColor(red:0.043, green:0.576 ,blue:0.588 , alpha:1.00)
}
}
<强>用法强>:
let myColor = UIColor.fadedGreen()