【问题标题】:Why there is CGColor when we already have UIColor in IOS? If they are different then what is the difference between them? [closed]IOS 已经有了 UIColor,为什么还有 CGColor?如果它们不同,那么它们之间有什么区别? [关闭]
【发布时间】:2018-07-19 20:35:51
【问题描述】:

我只是想知道为什么在 iOS 中有两种获取颜色的方法。我是 Swift 和 Objective C 开发的新手,我只是想知道它们有何不同以及为什么不同?

【问题讨论】:

    标签: ios uicolor cgcolor


    【解决方案1】:

    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。
    • @rmaddy:是的,你是对的。我仅限于 iOS,因为它是这里的重点。
    • 而 UIKit 用于 iOS、tvOS 和 watchOS。
    • @rmaddy:我更新了我的评论。 ;)
    • CGColor 是一个 C 结构类型。 UIColor 是一种objective-c 类型。这就是区别。 CGColor 被低级图形库使用。 UIKit 只是将其封装在 Objective-c 中以获得更好的 iOS 开发体验。
    猜你喜欢
    • 1970-01-01
    • 2014-11-10
    • 2021-08-10
    • 2014-03-20
    • 2010-10-18
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 2012-08-29
    相关资源
    最近更新 更多