如何替换SWIFT中Objective-C中曾经拥有的#define宏?

zum*_*zum 5 macros objective-c ios swift

我一直在Objective-C中使用这个宏:

#define     RGBA(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:(a)]
Run Code Online (Sandbox Code Playgroud)

我试图找出如何在swift中获得最接近的东西.有任何想法吗?

Gab*_*lla 9

扩展名UIColor是有效选项.

extension UIColor {
    convenience init(_ r: Double, _ g: Double, _ b: Double, _ a: Double) {
        self.init(red: r/255, green: g/255, blue: b/255, alpha: a)
    }
}
Run Code Online (Sandbox Code Playgroud)

用法

let white = UIColor(255.0, 255.0, 255.0, 1.0)
Run Code Online (Sandbox Code Playgroud)

  • `_`允许您在调用方法时跳过参数名称. (3认同)

GoZ*_*ner 8

在全球范围内提供:

func RGBA (r:CGFloat, g:CGFloat, b:CGFloat, a:CGFloat) {
  return UIColor (red: r/255.0, green: g/255.0, blue: b/255.0, alpha: a)
}
Run Code Online (Sandbox Code Playgroud)

然后使用它:

var theColor : UIColor = RGBA (255, 255, 0, 1)
Run Code Online (Sandbox Code Playgroud)