如何使用 Swift 3 或 Hue 将 CAGradientLayer 转换为 UIColor?

Posted

技术标签:

【中文标题】如何使用 Swift 3 或 Hue 将 CAGradientLayer 转换为 UIColor?【英文标题】:How to Convert a CAGradientLayer to a UIColor with Swift 3 or Hue? 【发布时间】:2016-10-29 03:55:17 【问题描述】:

我尝试使用 Hue 将背景颜色设为渐变色 (https://github.com/hyperoslo/Hue),但我收到错误消息,提示 backgroundColor 仅适用于 UIColor。但是是否可以将 CAGradientLayer 更改为 UIColor。 (我更喜欢在 Hue 框架中,但在苹果框架中也可以。)

【问题讨论】:

【参考方案1】:

在您链接到的色调页面上有一个示例:

    lazy var gradient: CAGradientLayer = [
      UIColor(hex: "#FD4340"),
      UIColor(hex: "#CE2BAE")
      ].gradient  gradient in
        gradient.speed = 0
        gradient.timeOffset = 0

        return gradient
      

您需要做的就是将其作为子图层添加到您的视图中。

    view.layer.addSublayer(gradient)

【讨论】:

可以把它变成 UIColor 吗?还是让它针对特定元素? UIColor 不能是渐变色;除了 UIColor(patternImage image: UIImage) 的奇怪情况外,它始终是单一颜色。我想您可以将渐变渲染为图像并将其用作图案图像颜色。将 CAGradientLayer 添加到现有视图要容易得多。

以上是关于如何使用 Swift 3 或 Hue 将 CAGradientLayer 转换为 UIColor?的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 Hue-2.5.0 和 HIVe-0.11.0

Swift 3 Xcode:如何将电池电量显示为整数?

如何使用 SWIFT 修改文档或 PDF 中的选定字段

三星智能电视应用程序将 HUE 用作流光溢彩

iOS 编程中, 如何使用 Swift 和 CAGradientLayer 绘制这个矩形

如何在 Swift 中连接或合并数组?