一尘不染

您如何为当前平台使用适当的颜色类别?

swift

我试图在iOS和OS X上共享我的Scene Kit代码,但是根据平台的不同,接受颜色(和图像)的API调用采用UIColor /
UIImage或NSColor / NSImage。如何在Swift中创建正确的类而不重复代码?


阅读 349

收藏
2020-07-07

共1个答案

一尘不染

使用条件编译并输入别名:

#if os(OSX)
    typealias Color = NSColor
    typealias Image = NSImage
#else
    typealias Color = UIColor
    typealias Image = UIImage
#endif

然后使用Color代替UIColor或NSColor:

self.gameView!.backgroundColor = Color(red: 0, green: 0.2, blue: 0.5, alpha: 1)

编辑2016年1月17日:正如上面提到的DDPWNAGE一样,Apple所创建SKColor的定义基本相同。

2020-07-07