【发布时间】:2018-07-19 20:35:51
【问题描述】:
我只是想知道为什么在 iOS 中有两种获取颜色的方法。我是 Swift 和 Objective C 开发的新手,我只是想知道它们有何不同以及为什么不同?
【问题讨论】:
我只是想知道为什么在 iOS 中有两种获取颜色的方法。我是 Swift 和 Objective C 开发的新手,我只是想知道它们有何不同以及为什么不同?
【问题讨论】:
CGColor 来自低于UIColor 的级别。这种差异在 Swift 中不再那么明显了,但是您可能会在 Objective-C 中看到这一点,其中 UIColor 是一个带有方法的 Objective-C 类,而 CGColor 是一个 C 类型,您可以使用 C 函数访问它。
UIColor 是基于 Core Graphics 的 UIKit 的一部分,CGColor 属于其中。 UIKit 适用于 iOS(和 tvOS),Core Graphics 适用于 macOS 和 iOS,您可以在两者之间共享 Core Graphics 的代码。
粗略地说,Core Graphics 用于绘图,而 UIKit 及其 macOS 挂件 AppKit 用于 GUI 显示。
【讨论】:
UIColor 适用于 iOS、tvOS 和 watchOS。 CGColor 适用于所有这些加上 macOS。
UIKit 只是将其封装在 Objective-c 中以获得更好的 iOS 开发体验。