定义自定义颜色Swift

Sja*_*ien 3 extension-methods swift

我正在用Swift重写我的应用程序(是的,万岁),我遇到了以下问题:

我继承了一个类,其定义是(.h)

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface MWColor : NSObject

+ (UIColor *)gray;
+ (UIColor *)green;
+ (UIColor *)themeColor;


@end
Run Code Online (Sandbox Code Playgroud)

在这里,我定义了颜色,我可以在整个项目中使用它们:

myView.backgroundColor = MWColor.gray()
Run Code Online (Sandbox Code Playgroud)

现在,我想以适当的Swift方式做到这一点.

什么是最好的方法?扩展?

帮助我成为一名优秀的斯威夫特公民

Fog*_*ter 6

你可以UIColor在这样的扩展中添加计算颜色......

extension UIColor {
    static var myRed: UIColor { 
        // define your color here
        return UIColor(...) 
    }
}
Run Code Online (Sandbox Code Playgroud)

甚至...

extension UIColor {
    static let myRed = UIColor(... define the color values here ...)
}
Run Code Online (Sandbox Code Playgroud)

然后访问它...

let someColor: UIColor = .myRed
Run Code Online (Sandbox Code Playgroud)

要么

let otherColor = UIColor.myRed
Run Code Online (Sandbox Code Playgroud)

这与标准颜色的定义方式相匹配.

UIColor.red
UIColor.yellow
UIColor.myRed
Run Code Online (Sandbox Code Playgroud)

等等...